my-git

Microsoft Release Flow

原文链接:

Microsoft Release Flow 很适合中大型业务团队参考。

它采用 trunk-based 的主干集成方式,但不会把 master 直接持续部署到生产。团队按 sprint 从 master 创建 release branch,生产 hotfix 先合入 master,再 cherry-pick 到当前 release branch。

核心流程

feature branch -> PR -> master
master -> releases/M130 -> production
hotfix -> master -> cherry-pick -> releases/M130

这个模型把两个目标分开:

为什么不用复杂长期分支

Microsoft 文章里提到,复杂的多层分支结构容易复制组织结构,代码一路向主干集成,再从主干反向同步到各分支,最后形成持续合并压力。

Release Flow 的取舍是:

Hotfix 规则

Release Flow 最值得借鉴的是 master first。

生产修复先合入 master,再 cherry-pick 到当前 release branch。

这样可以避免一个常见事故:线上修了问题,但主干没有这个修复,下一次发布又把问题带回来。

只有当修复在主干上已经不适用时,才考虑直接修 release branch。

适合什么团队

适合:

不适合:

对本手册的启发

Release Flow 说明了一个很实用的组合:

trunk-based integration + release branch deployment + master-first hotfix

它比完整 Gitflow 轻,又比纯 GitHub Flow 更适合中大型服务团队。