最近团队开始使用git,学习并整理了一下git的分支管理方法
分支的类型
分支的类型分为:主干分支和临时分支。
- 主干分支包含:master分支和developer分支
- 临时分支一般包含:feature分支、hotfix分支、release分支
主干分支的管理
master分支
master分支的代码是所有生产代码的版本记录。所有已上线的代码的版本标签应该是从master分支打出来的。
master分支平时并不能提交代码,只能从developer分支或Hotfix分支合并到master分支。每次合并后,都会在master分支上创建一个标签。
developer分支
developer分支是平时开发功能的分支。实际上开发人员平时也不会频繁的提交代码到developer分支,一般是从feature分支或者hotfix分支合并过来。
临时分支的管理
feature分支
feature分支用于新功能的开发。
当有新功能需要开发时,开发人员从developer分支上创建一个新的分支,命名为“feature_{功能名称}”。
开发人员在此分支下进行开发、测试、代码提交,当该功能开发完成后,合并到developer分支,并删除该分支。(合并过程一般是仓库管理员进行)
当feature分支需要多人共同开发时,才需要提交到远程仓库,否则只需要保留在开发人员的本地仓库
hotfix分支
hotfix分支用于生产环境的bug修改。
注意,这里说的bug一般是紧急的、影响使用的、必须马上修复的bug。
开发人员从master分支上创建一个新的分支,命名为“hotfix_{版本号}”。
开发人员在此分支下进行开发、测试、代码提交,最后上线,此功能合并到master分支和developer分支,并删除该分支。(合并过程一般是开发人员得到仓库管理员的授权后进行)然后在master分支上创建一个标签记录为“version_{版本号}”。
hotfix分支一般不需要提交到远程仓库。
release分支
release分支是近期需要上线的功能分支。
当developer分支里的新功能需要准备上线时,从developer分支创建一个新的分支,命名为“release_{版本号}”。
代码发布服务器从release上提取代码并编译发布到测试环境上。
- 如果代码有bug,开发人员直接在release分支上修改提交
- 如果有新的功能,则采用feature分支的管理方式进行,一般不允许在release分支上进行开发
release分支上的代码在测试环境测试能过后,提交权限关闭,然后合并到master分支和developer分支,并删除该分支。(合并过程一般是仓库管理员进行)然后在master分支上创建一个标签记录为“version_{版本号}”。
版本号的管理
- 每个仓库有独立的版本号,版本号的格式为:{a}.{b}.{c}
- 每个仓库首次上线的版本号为:1.0.0
- 每个hotfix分支创建时,第三位版本号增加1,合并后的master分支被标记为此版本号
- 每个release分支健时,第二位版本号增加1,合并后的master分支被标记为此版本号
- 当某个release的功能比较大的情况下,第一位版本号增加1,后面两位重置为0
网友评论