特点
Gitflow 工作流定义了围绕项目发行版设计的严格分支模型,这为管理较大的项目提供了一个强大的框架。
借助git-flow工具集(brew install git-flow),可以简化操作命令
适合场景
有预定发布周期的(如安卓、IOS开发周期)、较大项目的团队,DevOps持续交付
流程
初始化项目分支(develop和master)<br>
<font color="#f44336"># 在项目中执行初始化<br>git flow init<br># 查看分支结构<br>git branch <br># * develop<br># master</font><br>
创建功能分支(基于develop)
<font color="#f44336"># 不使用git-flow 扩展工具方式:<br>git checkout develop<br>git checkout -b feature_branch<br><br># 使用git-flow 扩展工具方式:<br>git flow feature start feature_branch</font>
功能开发完成(合并到develop)
<font color="#f44336"># 不使用git-flow 扩展工具方式:<br>git checkout develop<br>git merge feature_branch<br><br># 使用git-flow 扩展工具方式:<br>git flow feature finish feature_branch</font>
(重复上面两步)多个功能完成合并到develop之后,<br>基于develop创建一个发行分支(release)<br>创建此分支将开始下一个发行周期,因此此刻之后不能添加任何新功能,<br>该分支中仅应包含错误修复、文档生成以及其他面向发行版的任务<br>
<font color="#f44336"># 不使用git-flow 扩展工具方式:<br>git checkout develop<br>git checkout -b release/0.1.0<br><br># 使用git-flow 扩展工具方式:<br>$ git flow release start 0.1.0<br>Switched to a new branch 'release/0.1.0'</font><br>
完成发行分支(发布分支将被删除)
<font color="#f44336"># 不使用git-flow 扩展工具方式:<br>git checkout master<br>git merge release/0.1.0<br># 重新合并到develop分支很重要<br>git checkout develop<br>git merge release/0.1.0<br>git branch -D release/0.1.0<br><br># 使用git-flow 扩展工具方式:<br>git flow release finish '0.1.0'</font><br>
热修分支hotfix(基于master)<br>用于快速修补生产版本
<font color="#f44336"># 不使用git-flow 扩展工具方式:<br>git checkout master<br>git checkout -b hotfix_branch<br><br># 使用git-flow 扩展工具方式:<br>git flow hotfix start hotfix_branch</font><br>
完成热修(同样需要合并到master和develop)
<font color="#f44336"># 不使用git-flow 扩展工具方式:<br>git checkout master<br>git merge hotfix_branch<br>git checkout develop<br>git merge hotfix_branch<br>git branch -D hotfix_branch<br><br># 使用git-flow 扩展工具方式:<br>git flow hotfix finish hotfix_branch</font>