GitFlow 工作流
GitFlow理解
GitFlow 是由 Vincent Driessen 提出的一个 git操作流程标准,包含如下几个关键分支:
- master:主分支,非常稳定的,不用来开发和发布,只用来跟踪已经发布的代码;
- develop:主开发分支,包含确定即将发布的代码;开发都在这个分支;
到发布时,再合并到release上; - feature:新功能分支,一般一个新功能对应一个分支,对于功能的拆分需要比较合理,以 避免一些后面不必要的代码冲突;
- release:发布分支,发布时候用的分支,测试时候发现的 bug直接 在这个分支进行修复;
- hotfix:紧急修 bug 的时候用;
在实际开发过程中,需要注意到以下几点:
- master 线是最干净的分支,只有在发布版本的时候,才需要合并到此分支上。
- dev 分支上面的代码一定是最新的,而且是可以协同使用的;没有开发完成的代码,请不要合并上去。dev 上面存放的是一个一个的开发任务,任务完成就提交到 dev,有新的任务过来时,就在 dev 上面新建一个 feature 分支。
- 如果这个新的任务 feature 上面,需要多个人同时协同开发,就在这个 feature 上面各自再建自己的分支。
- 如果多人协同的代码有交叉的,需要共享,这时就需要随时将自己最新的代码提交,merge到 feature 分支上,然后同步到远程,同时,其他开发人员也需要随时从远程 pull 最新的代码,并 merge 到自己开发的分支上。
GitFlow的好处
-
并行开发:
每个新功能都会建立一个新的 feature分支,从而和已经完成的功能隔离开来,而且只有在新功能完成开发的情况下,其对应的 feature分支才会合并到主开发分支(develop分支) -
协作开发:
每个 feature分支多人协同开发。 -
发布阶段:
当 feature 开发完成的时候,它会被合并到 develop 分支,这个分支主要用来暂时保存那些还没有发布的内容,所以如果需要再开发新的 feature,我们只需要从 develop 分支创建新分支,即可包含所有已经完成的 feature 。 -
紧急修复:
hotfix(bug) 分支,这种类型的分支是从master分支上创建出来并做一个紧急的修复,而且这个紧急修复只影响这个已经发布的 版本,而不会影响到你正在开发的新 feature。