GIT 分支管理办法(二)
GIT 分支管理办法(二)
一. 大型项目分支管理中存在的痛点
大型项目中需求的上线存在很大的不确定性,而且往往存在多版本、多团队、多开发并行的情况。尤其是大型企业对上线分支中编号的管理十分严苛,严禁夹带上线。这时对于开发而言,没有一个好的分支管理策略就是一个灾难。
二. 实践中的分支管理最优解:按版本、按需求、按人员拆分支(基础
)
1. 业务场景
10月份有四个需求同时在开发,分别是商机、客户、目标、业绩。其中商机需求由甲(张三、李四)、乙(王五、赵六)两个团队配合开发。其中商机需求在 20231004
、20231011
、20231018
、20231025
四个版本都有改动,甚至互相冲突。
2. 业务特点
版本多
:20231004
、20231011
、20231018
、20231025
关联方多
:任意一侧都可能导致无法投产不同版本改同一需求
:可能冲突
3. 如何处理分支问题呢?
3.1 环境为前提
准备最少三套环境用于开发测试使用
DEV
:开发分支
,所有大版本排期以内的需求的分支均可以合入SIT
:测试分支
,所有大版本排期以内的需求的分支均可以合入UAT
:预上线分支
,只有正常提测且按期上线
的需求相关分支可以合入
3.2. 拉取个人需求开发分支
- 张三 商机 1004 需求:DEV-20231004-OPPT-ZHANGSAN
- 张三 商机 1011 需求:DEV-20231011-OPPT-ZHANGSAN
- 张三 商机 1018 需求:DEV-20231018-OPPT-ZHANGSAN
- 张三 商机 1025 需求:DEV-20231025-OPPT-ZHANGSAN
- 李四 目标 1004 需求:DEV-20231004-GOAL-LISI
- 李四 商机 1018 需求:DEV-20231018- ACHIEVEMENT-ZHANGSAN
4. 实际中的操作
严格来说,上线分支一定是测试过的分支,故而生产投产分支即为 UAT 分支。但实际中,可以存在上线前几天突然通知延期的情况。当出现这种情况时,需要基于 UAT 分支拉取 PRDO 分支,将不上线的需求通过 revert commit 的形式回退代码,再通知测试重新验证该需求。