Skip to content

Latest commit

 

History

History
23 lines (14 loc) · 1.91 KB

git分支管理最佳实践.md

File metadata and controls

23 lines (14 loc) · 1.91 KB

一般来说,团队中git永久存在的分支有且只有2个:master 分支和 develop 分支。

master 分支

git仓库应该有且仅有一个主分支。所有提供给用户使用的正式版本代码,都应在这个主分支上发布,以确保这个分支上的每一个版本永远是最正确、最完整的,直接拿去不做任何变更就能正常使用。

与此同时,master 分支通常禁止开发人员直接修改代码,它应该只能从其他分支上合并版本过来。

develop 分支

develop 分支应该视为日常开发的分支,它的代码应该是永远最全最大合集。

每当临时分支上的功能点开发完成后都应立即提交至 develop 分支上,然后 develop 分支进行编译验证和集成测试,以确保集成的代码完整、正确。

因此,一般来说持续集成等自动化手段都应针对该分支建立,比如 JenkinsSelenium 等 CI 工具通常监测 develop 分支的代码变更,一旦有新的commit,那就自动启动Jenkins的代码拉取、编译、测试、输出测试报告、发送邮件通知等一系列自动化过程,从而实现代码管理的全程自动化。

临时分支

以上涉及的 masterdevelop 分支属于git库中永久存在的分支。除此之外,根据需要通常还会建立很多临时性分支,通常如下:

  • feature-* 功能分支(也叫特性分支)
  • hotfix-* 热修复分支

feature 分支一般作为小功能点或模块的独立分支,从 develop 分支拉出来,当功能特性开发完成后就要合并回 develop 分支,最后删除该 feature 分支。

hotfix 分支作为线上问题的修复分支,一般从 master 分支直接拉出来,当bug修复完成验证无误后并入 master 分支,同时推送到 develop 分支,以及其他所有临时分支,确保所有分支都有线上问题的修复代码。