您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~
场景描述
最近在开发一个新的功能,和往常一样先建了一个分支进行开发,开发到周期60%的时候,后端临时通知需要将大功能中的A、B、C三个功能拆分三个迭代分别发布,于是拆分成了三个迭代,后来因为业务上下游支持的因素,并且三块功能堆在一个时间点测试,预发环境只能部署一个分支的版本,所以还是需要将三个分支集成到一个迭代去发布,记录一下整个解决过程和思路。
版本生命周期图
整个开发步骤如下:
- 在开发阶段,保持三个分支,分别开发联调对应功能;
- 在预发测试阶段,得到通知需要三合一发布;
- 单独建临时分支,
rebase
三个子分支代码,部署在预发环境,暂时解决多功能不同测试预发验收的问题; - 修复测试验收BUG,切到对应功能子分支解决问题,
push
到子分支 +cherry-pick
到临时分支,保证临时分支和原分支代码归一; - 部署阶段,选择性部署,子分支分别灰度 or 临时分支直接灰度都可以,保留子分支代码就是为了到部署阶段又变成了功能分别上线emmm;
主要原因也是因为我司的构建平台暂不支持同项目集成多分支,在预发上测试。
并且多个测试需要在一天三个功能,需要集成在同一个预发版本中。
而在部署阶段保留两种情况也是为了防止意外,如果又需要三个分支分别部署,前端就不可逆了,在临时分支中回滚会去除创建临时分支后所提的commit。
总结
本文记录了博主在工作中遇到的分支管理的实际场景,如果对于这种场景,你有更好的解决方案,留言一起讨论哦~