首页/开发/Git 与协作速查/Trunk-Based Development 主干开发

Trunk-Based Development 主干开发

开发者以小批量、高频次把改动合入主干:分支极短(小时到天)或直接提交主干,配套自动化测试与特性开关。

Git 与协作速查开发更新于 2026-10-13

主干开发是什么

主干开发(Trunk-Based Development)指开发者以小批量、高频次把改动合入主干:分支寿命极短(小时到天),或者直接向主干提交。它成立的前提是自动化测试、特性开关与快速回滚这些配套能力,而不是单纯要求「少开分支」。

基本信息

核心做法小批量、高频次合并到主干
分支策略极短生命周期分支,或直接提交主干
配套能力自动化测试、特性开关、快速回滚、主干随时可发布
反向信号功能分支存在数周、合入前反复合并主干

典型使用场景

  • 团队要从 Git Flow 简化流程、缩短交付周期
  • 希望减少长期分支带来的合并冲突与集成风险
  • 发布节奏快,需要按功能开关灰度上线
  • 已有稳定的 CI 与自动化测试作为质量网
  • 需要主干任何时刻都能构建出可发布版本

日常节奏示意

日常节奏示意
git switch main && git pull --ff-only       # 每次动手前先同步主干
git switch -c feat/small-step              # 分支只活几小时到一天
git commit -m 'feat: 小步提交,保持可回滚'
git fetch origin && git rebase origin/main  # 合入前对齐主干,冲突就地解决
git push -u origin feat/small-step         # 尽快提 PR 触发评审与流水线
git switch main && git pull --ff-only       # 合入后回到主干继续下一步

与其他模型对照

模型分支寿命主要风险
主干开发小时到天依赖自动化与开关,纪律要求高
Git Flow数天到数周冲突累积、集成被推迟
GitHub Flow数天分支偏长时集成仍会拖延
trunkbaseddevelopment.com 明确强调:短生命周期分支加频繁集成是主干开发的必要条件,这两点做不到就不算主干开发。
未完成的功能用特性开关控制曝光,让代码可以先进主干、暂不对用户可见;开关本身要排期清理,否则会退化成隐形分支。
依赖升级同样要小步走:一次性升级大量依赖会让主干长时间处于不可用状态,分段升级、每段跑完整回归更稳妥。

易错点

  • 没有自动化测试与快速回滚就上主干开发,缺陷会直达主干,故障影响面被放大
  • 把主干开发理解成「直接往主干推」:绕过评审与流水线等于放弃质量门禁
  • 特性开关长期不清理,线上行为由一堆历史开关决定,排查故障时无从下手
  • 分支虽短但每次都合并主干进来,说明集成仍然滞后,应改为更小粒度的提交

数据来源与参考

  • Trunk Based Development(trunkbaseddevelopment.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌