GIT 分支管理办法
一. 大型项目分支管理中存在的痛点
大型项目中需求的上线存在很大的不确定性,而且往往存在多版本、多团队、多开发并行的情况。尤其是大型企业对上线分支中编号的管理十分严苛,严禁夹带上线。这时对于开发而言,没有一个好的分支管理策略就是一个灾难。
二. 实践中的分支管理最优解:按版本、按需求、按人员拆分支
1. 业务场景
10月份有四个需求同时在开发,分别是商机、客户、目标、业绩。其中商机需求由甲(张三、李四)、乙(王五、赵六)两个团队配合开发。其中商机需求在 20231004
、20231011
、20231018
、20231025
四个版本都有改动,甚至互相冲突。
2. 业务特点
版本多
:20231004
、20231011
、20231018
、20231025
关联方多
:任意一侧都可能导致无法投产不同版本改同一需求
:可能冲突
3. 如何处理分支问题呢?
3.1. 拉取需求开发分支
- 商机 1004 需求:DEV-20231004-OPPT-V1
- 商机 1011 需求:DEV-20231011-OPPT-V1
- 商机 1018 需求:DEV-20231018-OPPT-V1
- 商机 1025 需求:DEV-20231025-OPPT-V1
- 目标 1004 需求:DEV-20231004-GOAL-V1
- 业绩 1018 需求:DEV-20231018- ACHIEVEMENT-V1
- 客户 1025 需求:DEV-20231025-CUST-V1
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
3.3. 交付 20231004 测试版本
- 将
20231004 个人需求开发分支
合入20231004 需求开发分支
中 - 新建
SIT-20231004-V1
测试分支,将DEV-20231004-* 需求开发分支
代码合并到SIT-20231004-V1
分支。 - 如果出现需求临时不上线的情况,那么新拉一条 DEV-20231004-V2,将最新的需要上线的需求分支都合入,解决冲突。重复前边的步骤
- 最终以
SIT-20231004 最高版本
为投产版本
4. 实际中的操作
现实中,因为版本周期短,频繁切换合并分支成本过高,一般 DEV 分支不会单独创建 需求开发分支
,只保留 DEV-20231004-V1
,直接将 个人需求开发分支
合并到 DEV-20231004-V1