热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GitHub工作流学习

工作流定义工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象

工作流定义 

工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。

工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。尽管工作流已经取得了相当的成就,但对工作流的定义还没有能够统一和明确。

Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。

1993年工作流管理联盟(Workflow Management Coalition,WfMC)作为工作流管理的标准化组织而成立,标志着工作流技术逐步走向成熟。WfMC对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。

理解GitHub流

原文

https://guides.github.com/introduction/flow/

GitHub流是一个轻量级的、基于分支的工作流,它支持定期进行部署的团队和项目。本指南解释了GitHub流是如何工作的以及为什么工作。

创建分支

当你在做一个项目的时候,你会在任何时候都有很多不同的特性或想法在进行中--其中一些已经准备好了,而另一些则没有。存在分支以帮助您管理此工作流。

当您在项目中创建分支时,您正在创建一个可以尝试新想法的环境。在分支上所做的更改不影响master分支,所以您可以自由地进行实验和提交更改,因为您的分支不会被合并,直到它准备好接受与您合作的人的评审。

ProTip

分支是Git中的一个核心概念,整个GitHub流就是以它为基础的。只有一条规则:master分支总是可部署的。正因为如此,在处理特性或修复时,创建新的分支非常重要。您的分支名称应该是描述性的(例如,refactor-authenticationuser-content-cache-keymake-retina-avatars),以便其他人能够看到正在进行的工作。

添加提交

一旦创建了分支,就应该开始进行更改了。无论何时添加、编辑或删除文件,都要提交文件,并将它们添加到分支中。添加提交的这个过程在处理特性分支时跟踪您的进度。

提交还可以创建一个透明的工作历史,其他人可以跟随它来理解您所做的事情和原因。每个提交都有一个相关的提交消息,这是一种解释为什么要进行特定更改的描述。此外,每个提交都被认为是一个单独的更改单元。这允许您在发现bug时回滚更改,或者如果您决定向另一个方向前进。

ProTip

提交消息很重要,特别是因为Git跟踪您的更改,然后在提交到服务器时将它们显示为提交。通过编写清晰的提交消息,您可以使其他人更容易跟踪并提供反馈。

打开拉请求

启动关于提交的讨论。因为它们与底层的Git存储库紧密集成,所以任何人都可以确切地看到,如果他们接受您的请求,那么哪些更改将被合并。

在开发过程中的任何时候,您都可以打开一个拉请求:当你有很少或没有代码但想分享一些屏幕截图或一般想法时,当你陷入困境,需要帮助或建议时,或者当你准备好让别人回顾你的工作时。通过在您的拉请求消息中使用GitHub的@TIVE系统,您可以从特定的人员或团队那里获得反馈,无论他们是在大厅下面还是在10个时区之外。

ProTip

拉请求对于促进开源项目和管理共享存储库的更改非常有用。如果您使用的是叉&拉模型,则拉请求提供了一种通知项目维护人员您希望他们考虑的更改的方法。如果您使用的是共享存储库模型,则在将所建议的更改合并到主分支之前,拉请求可以帮助您启动代码评审和讨论。

讨论并检查您的代码

一旦打开了拉请求,查看更改的人员或团队可能会有问题或评论。也许编码风格与项目指南不匹配,更改缺少单元测试,或者一切看起来都很棒,道具也是井然有序。拉请求是为了鼓励和捕捉这种类型的对话而设计的。

您还可以根据对提交的讨论和反馈,继续推进到您的分支。如果有人评论说您忘了做某件事,或者代码中有错误,您可以在您的分支中修复它并向上推高更改。GitHub将显示您的新提交以及在统一拉请求视图中可能收到的任何其他反馈。

ProTip

拉请求注释是用Markdown编写的,因此您可以嵌入图像和表情符号,使用预先格式化的文本块和其他轻量级格式。

部署

使用GitHub,您可以在合并到主服务器之前,从一个分支进行部署,以便在生产中进行最终测试。

一旦对拉请求进行了检查,并且分支通过了测试,您就可以在生产中部署您的更改来验证它们。如果您的分支导致问题,您可以通过将现有的主服务器部署到生产中来回滚它。

合并

现在已经在生产中验证了您的更改,现在是将代码合并到主分支中的时候了。

合并后,拉请求将保留对代码的历史更改的记录。因为他们是可搜索的,他们让任何人回到过去,去了解为什么和如何做出决定。

ProTip

通过将某些关键字合并到拉请求的文本中,您可以将问题与代码关联起来。合并拉请求时,相关问题也将关闭。例如,输入短语Closes #32将关闭存储库中的第32号问题。有关更多信息,请查看我们的帮助文章.


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 实验2:Open vSwitch虚拟交换机实践   实验3:OpenFlow协议分析实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通 ... [详细]
  • Android native层服务例子Bp和Bn
    转入android阵地,被各种权限所阻挠,app写个jni各种没有权限,只能开个native服务,本来android的服务& ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 用户登录 ... [详细]
author-avatar
mobiledu2502857923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有