Gitflow工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架。
git flow全貌示意图:
工作方式
Gitflow工作流仍然用中央仓库作为所有开发者的交互中心。和其它的工作流一样,开发者在本地工作并push分支到要中央仓库中。
分支说明
主分支
master:随时可供在生产环境中部署的代码
develop:保存当前最新开发成果的分支(新功能经过测试后的稳定版本)
辅助分支
辅助分支包括:
feature分支
使用规范:
可以从develop分支发起feature分支
代码必须合并回develop分支
feature分支的命名可以使用除master,develop,release-*,hotfix-*之外的任何名称
release
为发布新的产品版本而设计,允许做小的缺陷修正、准备发布版本所需的各项说明信息(版本号、发布时间、编译时间等等)。实际上是为了让develop分支顺利进入下一个功能更新版本而做备份的分支:
在日期a前完成新功能版本v1.0.1研发和测试,发布日期b相对于a较晚。此时有新的迭代功能版本v1.0.2开始研发。从develop分支fork出来用作v1.0.1版本预发布
使用规范:
可以从develop分支派生
必须合并回develop分支和master分支
分支命名惯例:release-*
hotfix
当生产环境中的软件遇到了异常情况或者发现了严重到必须立即修复的软件缺陷的时候,就需要从master分支上指定的TAG版本派生hotfix分支来组织代码的紧急修复工作。
如图所示
使用规范:
可以从master分支派生
必须合并回master分支和develop分支
分支命名惯例:hotfix-*