git分支管理方法

最近团队开始使用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

参考文档

  • Git 分支管理
  • Git分支管理策略
  • A successful Git branching model

你可能感兴趣的:(git分支管理方法)