Huozy
2022-04-21 19:37:38 +08:00
不建议 fork 到个人仓。
假定 Master 分支为生产版本代码,测试环境分支 test ,验证环境分支 UAT 。生产发布周期为 7 天一次。
Master 、UAT 、test 分支均受保护,普通开发无法直接提交或合并。
需求 A 从 Master 分支切出一个 dev_A ,需求 B 从 Master 切出 dev_B ,dev*分支都是由开发个人维护的,做相应需求开发。
dev*分支在开发过程中应在每个上线周期后与 mater 进行同步。
开发完成后,发起合并请求至 test ,上测试。由专人进行合并管理解决冲突。
假定上线日为 T 日,那么在 T-7 日时,应将已经测试完成的 dev_A ,由专人合并至 UAT 分支,发布进行验证测试。完成后将 UAT T-7 日版本 打包进入待上线,T 日发布。
发布成功后,T+1 日将 UAT 分支合并至 Master 分支,并打上 tag 。
假设 T+2 日,发现重大 BUG ,应从 Master 分支切出 BugFix 分支修复,并直接合并至 UAT 分支进行测试验证再发布。
理论上来说,test 分支上的 feature 功能不会与 UAT 同步,即某些功能上了测试,但可能最终都不会正式发布,那么此时 test 分支已经与 Master/UAT 相差较远,所以 test 分支应该定期删除,重新从 Master 分支切出,再将 dev*合入 test 分支进行测试。
上了 UAT 分支的代码,一定是要发布至生产的,如不发布,需要回退 UAT 分支。
如果你的 A 需求与其他需求代码出现大量冲突或者大量依赖的,需要团队负责人对开发周期进行考量和调整。
git 工作流没有办法完全解决代码冲突,只是尽可能的减少冲突出现。