GitFlow 工作流

GitFlow理解

GitFlow 是由 Vincent Driessen 提出的一个 git操作流程标准,包含如下几个关键分支:

  • master:主分支,非常稳定的,不用来开发和发布,只用来跟踪已经发布的代码;
  • develop:主开发分支,包含确定即将发布的代码;开发都在这个分支;
    到发布时,再合并到release上;
  • feature:新功能分支,一般一个新功能对应一个分支,对于功能的拆分需要比较合理,以 避免一些后面不必要的代码冲突;
  • release:发布分支,发布时候用的分支,测试时候发现的 bug直接 在这个分支进行修复;
  • hotfix:紧急修 bug 的时候用;

在这里插入图片描述

在实际开发过程中,需要注意到以下几点:

  1. master 线是最干净的分支,只有在发布版本的时候,才需要合并到此分支上。
  2. dev 分支上面的代码一定是最新的,而且是可以协同使用的;没有开发完成的代码,请不要合并上去。dev 上面存放的是一个一个的开发任务,任务完成就提交到 dev,有新的任务过来时,就在 dev 上面新建一个 feature 分支。
  3. 如果这个新的任务 feature 上面,需要多个人同时协同开发,就在这个 feature 上面各自再建自己的分支。
  4. 如果多人协同的代码有交叉的,需要共享,这时就需要随时将自己最新的代码提交,merge到 feature 分支上,然后同步到远程,同时,其他开发人员也需要随时从远程 pull 最新的代码,并 merge 到自己开发的分支上。

GitFlow的好处

  • 并行开发:
    每个新功能都会建立一个新的 feature分支,从而和已经完成的功能隔离开来,而且只有在新功能完成开发的情况下,其对应的 feature分支才会合并到主开发分支(develop分支)

  • 协作开发:
    每个 feature分支多人协同开发。

  • 发布阶段:
    当 feature 开发完成的时候,它会被合并到 develop 分支,这个分支主要用来暂时保存那些还没有发布的内容,所以如果需要再开发新的 feature,我们只需要从 develop 分支创建新分支,即可包含所有已经完成的 feature 。

  • 紧急修复: hotfix(bug) 分支,这种类型的分支是从master分支上创建出来并做一个紧急的修复,而且这个紧急修复只影响这个已经发布的 版本,而不会影响到你正在开发的新 feature。