
「为什么我们的发布这么慢?」——很多团队的答案藏在分支策略里:多分支合并冲突、长生命周期的 feature 分支、发布前的巨型 merge——这些都是分支模型带来的摩擦。Trunk-Based 和 GitFlow 是两个极端,选哪个取决于团队规模与发布模式。
```
main(生产) ← release/1.2 ← develop ← feature/xxx
↑ ↑
hotfix/xxx ← feature 分支
```
适用场景:版本号明确的交付型产品(客户端 App、桌面软件、按版本售卖的企业软件)——「2.3.0 版本」有明确含义,发布节奏是月/季度级。
```
main(始终可发布)
↑ 短命分支(<2天)直接合入
↑ feature flag 控制功能可见性
```
适用场景:Web 服务/SaaS 产品——每天发布多次,「版本」对用户透明。
维度 | GitFlow | Trunk-Based |
|---|---|---|
合并冲突 | 多(分支存活久,main 演进快) | 少(分支短命,及时 rebase) |
发布速度 | 慢(走 release 分支流程) | 快(main 随时可发布) |
回滚 | 按 tag 回退版本 | 重新部署旧 commit |
新人上手 | 门槛高(5 种分支要理解) | 简单(只有 main + 短分支) |
版本管理 | 清晰(tag 即版本) | 依赖 CI/CD 管道版本 |
适用 | 版本化交付 | 持续交付 Web 服务 |
Google/Meta/Netflix 都采用 Trunk-Based(或单仓库主干开发),原因:
分支策略没有银弹——发布模式决定分支模型:版本化交付用 GitFlow,持续交付用 Trunk-Based。但如果你不确定,从「缩短分支生命周期 + 引入 Feature Flag」开始——这是两个模型通用的改进方向,也是走向持续交付的必经之路。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。