git-flow分支管理策略是非常流行的,实际项目的版本管理中可以借鉴其思想。
https://nvie.com/posts/a-successful-git-branching-model/
git-flow将分支分为以下几种类型:
类型 | 来源 | 去向 | 说明 |
---|---|---|---|
master | 主分支 | ||
release | develop | develop和master | 预发布分支 |
develop | release和master | 开发分支 | |
feature | develop | develop | 功能分支 |
hotfix | master | develop和master | 紧急修复分支 |
master
- 主分支,永远是可用的、稳定的、可直接发布的版本;
- 不能直接在该分支上开发;
- 合并release稳定版本后打Tag确定版本。
release
- 预发布分支,在develop分支上创建,用于发布测试版本;
- 修改好bug并确定稳定之后合并到develop和master分支,然后发布master分支;
- 上线后可删除。
创建并切换到release分支:
1 | $ git checkout -b release-1.2 develop |
修复bug完毕提交:
1 | $ git commit -a -m "release 1.2" |
release合并到master分支:
1 | $ git checkout master |
master分支打tag:
1 | $ git tag -a 1.2 |
删除release分支:
1 | $ git branch -d release-1.2 |
develop
- 开发主分支,代码永远是最新;
- 所有新功能以这个分支来创建自己的feature分支,该分支只做合并操作,不能直接在该分支上开发。
feature
- 功能分支,在develop上创建分支,以自己开发功能模块命名;
- 功能测试正常后合并到develop分支,然后可删除。
创建并切换到feature分支:
1 | $ git checkout -b myfeature develop |
feature合并到develop分支:
1 | $ git checkout develop |
开发完毕删除分支并推送:
1 | $ git branch -d myfeature |
hotfix
- 紧急修复分支,项目上线之后可以会遇到Bug需要紧急修复,从master分支上创建;
- 修复完成后合并到develop和master分支,然后可进行删除。
创建并切换到hotfix分支:
1 | $ git checkout -b hotfix-1.2.1 master |
修复完毕提交:
1 | $ git commit -a -m "hotfiex 1.2.1" |
hotfix合并到master分支:
1 | $ git checkout master |
master分支打tag:
1 | $ git tag -a 1.2.1 |
删除hotfix分支:
1 | $ git branch -d hotfix-1.2.1 |
除了master和develop分支是一直持续以外,其余分支工作完毕后可进行删除。
分支命名规范
分支命名规范建议如下:
- origin/类型/版本/描述
例如:
- origin/master
- origin/release/1.0.0
- origin/release/1.0.1-bugfix
- origin/develop
- origin/feature/1.0.1/AAA
- origin/feature/1.0.1/BBB
- origin/hotfix/1.0.0