You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Trunk-Based Development的Cherry-Pick发布策略:如何正确创建Release Branch?

Trunk-Based Development工作流中如何正确创建Release分支?

我们团队正在试验Trunk-Based Development工作流,通过从trunk分支cherry-pick提交来准备发布。当前开发者的工作流程如下:

  • 创建feature分支(用于新功能开发、bug修复等场景)
  • 工作完成并准备好评审后,提交Pull Request
  • 评审通过后,以squash and merge的方式将代码合并至trunk分支
  • 重复上述流程

我的核心问题是:在此工作流下,我们应如何正确创建release branch?
具体有几个方向的疑问:

  • 是否应该从之前的release branch创建?
  • 是否应该从trunk的特定提交节点创建?
  • 或者创建孤儿分支?

思考

开发过程中,我们会将trunk中的提交cherry-pick到release branch,用于QA测试、功能演示、收集客户反馈等场景。这套流程目前效果不错:既减轻了开发团队的负担,又能清晰明确哪些功能会被纳入发布,还优化了流水线——不需要做开发冻结,也不用纠结代码该合并到发布分支还是热修复分支。

潜在的问题是release branch可能会与trunk产生分歧,但目前还没对我们造成实际影响。理论上,所有合并到trunk的提交最终都会被纳入当前或未来的某个release branch中。

目前我们的做法是:在trunk里选择一个既不包含下版本提交、通常也不含当前版本提交的节点,再把所有相关提交cherry-pick到新的release branch里。这种方式感觉有点笨拙,我对此存在顾虑。

另外我在考虑:从之前的release branch创建新的release branch,再从trunk中cherry-pick需要的提交是否可行?考虑到分支已经存在分歧,我暂时没发现明显的弊端。我们不会删除旧的release branch,因为它们相当于已标记的正式发布版本。从逻辑上来说,每个新版本都是基于前一版本构建的,但不确定这种方式会不会在未来引发问题。


内容的提问来源于stack exchange,提问作者Chris Hutchinson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:22:53