免费开源的iOS开发学习平台

GitHub:7-团队合作(GitHub Flow)

GitHub Flow简介

GitHub除了能够对版本进行管理之外,更加重要的价值在于团队协作,绝大多数软件项目都不是一个人独立完成的,而是需要团队合作,在团队合作中建立一套高效的协作方式就变得尤为重要。Github Flow是Github 多年来总结出来一套自己的团队协作流程,简单而且强大,网站上的各个功能都是围绕着这个流程来开发的。

GitHub Flow包含有如下五个标准环节:

  • 第一步,创建分支。

  • 第二步,创建新版本,即多个commit。

  • 第三步,发起“拉取请求”(Pull Request)。这里提到了一个新的概念Pull Request(简称PR)。PR 在整个 Github Flow 流程中占有核心位置, PR 的目的就是讨论,或者说是邀请项目成员进行代码审核,经过讨论无误后,代码可以合并到master版本中。

  • 第四步,讨论和代码审核。一旦开启了一个 Pull Request,审核你修改的人或团队会来提出问题和评论。有可能是代码风格符不符合项目规范, 也或者代码忘了单元测试,也可能各方面都没问题。Pull Request 就是为了鼓励这种类型的讨论而设计的。每一个 PR 都是开发历史上的一次小事件,很长时间过去之后,再看看当时的 PR 就可以看到当时为什么要开发这个功能,大家都是什么意见,都写了哪些代码,所以是项目发展的珍贵资料。从这个角度来说,即使一个 PR 没有被 merge 进 master ,那它里面的代码和讨论的内容也会是非常有意义的尝试,也可能在未来会有很大的参考价值。

  • 第五步,合并分支。一旦大家审核了你的 Pull Request 并且所有代码通过了测试,就是可以把你的代码合并到主分支了。一旦合并之后,Pull Request 会保留代码的历史修改记录。因为它们是可搜索的,它们让人可以回到过去,去理解为什么做这个决定以及怎样做的决定。

GitHub Flow使用实例

接下来我们通过一个实际的示例展示一下GitHub Flow的整个过程。

首先,在我们的本地仓库中,使用GitHub客户端创建一个名称为“修改README”的分支。

修改README.md文件,在GitHub客户端中,我们可以查看修改的内容,然后提交到当前分支。

发起一个Pull Request,点击GitHub客户端右上角的【Pull Request】按钮,发起PR。在提交PR的界面,我们可以选择希望合并的分支。如下图所示,我们希望把“修改README”分支合并到master分支上。

假如该项目还有一个开发者,在GitHub的Web端就可以看到其他开发者发起的PR,并且可以查看该PR中涉及的代码修改内容,并给出自己的评论。如果审核通过,可以点击【Merge pull request】按钮,合并到master分支上。

合并成功后,我们可以看到合并结果,并且可以点击【Delete branch】按钮删除分支。