GitFlow是Vincent Driessen提出的A Successful Git Branching Model
流程图翻译如下
分支介绍
主要分支:永久分支,生命周期与项目同步
- master:永远处在production-ready状态,保存已发布的版本
- develop:当前最新的工作状态
辅助分支: 临时性分支
- feature:开发新功能或较大的功能改动,一般基于develop分支,完成后merge回develop分支
- realease:准备发布版本,只完善当前版本,不加新功能。基于develop分支,完成后merge回develop和master(标记tag)
- hotfix:有紧急bug需修复上线,赶不及下次release。基于最新master,完成后merge回develop和master(标记)
分支图解
初始分支
所有在master分支上的commit 应该tag
feature分支
分支命名为feature/*,feature分支完成后,必须合并回develop, 合并完分支后一般会删点这个Feature分支,但是我们也可以保留
release分支
分支命名为release/*,release分支基于develop分支创建,创建release分支后,可以进行测试,修改bug等。同时,其它开发人员可以基于开发新的Feature
hotfix
分支名hotfix/*,修复线上出现的紧急bug
Git Flow代码示例
创建develop
1 | git branch develop |
开始新feature开发
1 | git checkout -b some-feature develop |
完成feature
1 | git pull origin develop |
开始relase
1 | git checkout -b release-0.1.0 develop |
完成release
1 | git checkout master |
开始hotfix
1 | git checkout -b hotfix-0.1.1 master |
完成hotfix
1 | git checkout master |