GIT分支管理办法
远程仓库
分支约束
远程仓库只允许出现五种类型的分支:
- 主分支:项目的主要分支也就是master分支。用于正式发布,该分支禁止任何人直接提交,提交合并请求由对应项目主管人员确认合并。
- 开发分支:项目的开发迭代分支,用于开发发布,常规开发任务的代码直接提交至该分支或者由临时分支合并至该分支。
- 测试分支:项目的测试迭代分支,用户测试发布,该分支禁止任何人直接提交,提交合并请求由对应项目主管人员确认合并。
- 归档分支:项目的里程碑版本保留分支,由测试负责人、项目负责人、产品负责人直接定义版本,从测试分支归档出新分支。
- 临时分支:由项目的开发人员建立的临时分支,禁止交叉提交,谁建立的分支便由谁负责管理,用于合并至开发分支,合并完成之后禁止新提交应当立刻删除。
主分支
主分支全局仓库唯一,分支名称固定为master,任何对主分支的直接提交定性为严重违规行为,需要尝试对主分支进行合并应当由对应仓库的开发负责人提交合并请求并由上级负责人通过合并实现对主分支的变更。
开发分支
开发分支全局仓库唯一,分支名称固定为devLoop,开发人员允许对该分支直接提交,任何向开发分支提交的代码在提交之前应当保证能够正常通过编译、部署并运行,无法部署的提交应当立刻修复并重新提交。开发分支部署的代码应当由开发人员完成所有的单元测试,全部通过之后再向测试分支提交。
测试分支
测试分支全局仓库唯一,分支名称固定为testLooop,禁止直接对该分支提交,测试分支应当由开发分支提交合并请求而来,由开发人员提交合并请求,由主要开发人员通过合并请求实现测试部署。小型项目、中间件研发可以酌情省略测试分支,由开发分支部署交于测试进行质量校验,大型项目或产品必须保证有测试分支。
归档分支
归档分支全局仓管可以具备多个,直接由测试分支或主分支派生,除特殊情况下禁止任何提交行为,归档分支名称格式为release-版本号(如:release-1.2.0
),分支由对应项目的开发主要负责人再与测试负责人沟通之后创建,已经后续无论是BUG、还是功能性问题都不应当项归档分支提交。
临时分支
临时分支全局仓库可以具备多个,临时分支名称格式为tem-开发者-创建时间(如:tem-tangyuecan-20200724
),由开发人员自行创建,临时分支的提交进制交叉提交,只允许分支创建者提交,临时分支只能合并到开发分支一旦完成合并之后应当立即删除,可以直接本地合并之后向开发分支提交或者提交合并请求由开发负责人进行合并,临时分支的生命周期原则上不超过三个工作日。临时分支主要用于无法在短时间之内完成的开发工作,或者整合至开发分支之后无法运行情况,这样考虑之下才有临时分支的概念。
提交描述
所以代码的提交、合并都应该通过文字目前描述出改此提交、合并的目的如下面几种:
修复问题:#xxxx
(禅道BUG的ID或者ISSUE)修复问题:xxxx
(BUG的名称)完成功能:#xxxx
(禅道的任务ID)完成功能:xxxxx
(功能的名称)
任何无意义或者具体目的的提交禁止同步至远程仓库,包括远程临时分支(禁止commit)