一个好的分支管理策略,可以使得版本库的演进保持简洁,主干清晰,各个分支各司其职、井井有条。介绍一下最近使用的一个好的管理策略
日常分支
日常用于发布和开发的分支,常设分支
主分支Master
代码库应该有且仅有一个主分支,提供给用户使用的正式版本。
开发分支Develop
主分支用来分布重大版本,日常开发应该在另一个开发分支上。
使用流程
- 创建Develop分支命令:git checkout -b develop master
- 切换Master分支: git checkout master
- 对Develop分支进行合并:git merge –no-ff develop
临时分支
用于应对一些特定的版本开发,使用完成后应该删除
功能(feature)分支
开发某个特定功能,从Develop分支分出来,开发完成合并回Develop分支。
流程如下:
- 创建功能分支(采用feacture-*形式命名):git checkout -b feature-x develop
- 切换Develop分支:git checkout develop
- 合并:git merge –no-ff feature-x
- 删除feature分支:git branch -d feature-x
预发布(release)分支
正式发版前的预发布测试版本。从Develop分支分出来,预发布结束后合并进Develop和Master分支。
流程如下:
- 创建预发布分支(采用release-*形式命名):git checkout -b release-1.2 develop
- 切换Master分支:git checkout master
- 合并:git merge –no-ff release-1.2
- 合并的新节点标签:git tag -a 1.2
- 合并到Develop分支
- 删除预发布分支:git branch -d release-1.2
修补bug(fixbug)分支
软件正式发版后出现bug,进行bug修补。从Master分支分出来,修补结束后合并进Develop和Master分支。
流程如下:
- 创建预发布分支(采用fixbug-*形式命名):git checkout -b fixbug-0.1 master
- 切换Master分支:git checkout master
- 合并:git merge –no-ff fixbug-0.1
- 合并的新节点标签:git tag -a 0.1.1
- 合并到Develop分支
- 删除预发布分支:git branch -d fixbug-0.1