您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~

场景描述

最近在开发一个新的功能,和往常一样先建了一个分支进行开发,开发到周期60%的时候,后端临时通知需要将大功能中的A、B、C三个功能拆分三个迭代分别发布,于是拆分成了三个迭代,后来因为业务上下游支持的因素,并且三块功能堆在一个时间点测试,预发环境只能部署一个分支的版本,所以还是需要将三个分支集成到一个迭代去发布,记录一下整个解决过程和思路。

版本生命周期图

Git业务实践记录-LMLPHP

整个开发步骤如下:

  • 在开发阶段,保持三个分支,分别开发联调对应功能;
  • 在预发测试阶段,得到通知需要三合一发布;
  • 单独建临时分支,rebase三个子分支代码,部署在预发环境,暂时解决多功能不同测试预发验收的问题;
  • 修复测试验收BUG,切到对应功能子分支解决问题,push到子分支 + cherry-pick到临时分支,保证临时分支和原分支代码归一;
  • 部署阶段,选择性部署,子分支分别灰度 or 临时分支直接灰度都可以,保留子分支代码就是为了到部署阶段又变成了功能分别上线emmm;

主要原因也是因为我司的构建平台暂不支持同项目集成多分支,在预发上测试。

Git业务实践记录-LMLPHP

并且多个测试需要在一天三个功能,需要集成在同一个预发版本中。

而在部署阶段保留两种情况也是为了防止意外,如果又需要三个分支分别部署,前端就不可逆了,在临时分支中回滚会去除创建临时分支后所提的commit。

总结

本文记录了博主在工作中遇到的分支管理的实际场景,如果对于这种场景,你有更好的解决方案,留言一起讨论哦~

05-27 10:46