主干开发是什么
主干开发要求开发者频繁把改动合并进主干,分支生命期尽量短,理想情况一天以内;配合特性开关与自动化测试,减少合并冲突与集成风险。它解决的是长期分支带来的问题:分支越久,合并越难,集成风险越集中到发布前夕。主干开发并不取消评审,而是要求小批量、快评审、随时可发布,把主干健康度变成团队共同责任。
基本信息
| 做法 | 短命分支或直接在主干小步提交 |
|---|---|
| 配套 | 特性开关、自动化测试、代码评审 |
| 好处 | 集成频繁、冲突小、可随时发布 |
| 分支寿命目标 | 一天以内,最长不超过数天 |
| 前提条件 | 主干有自动化门禁保护 |
| 常见阻力 | 长期需求与多版本并行维护 |
典型使用场景
- 产品迭代团队:多人并行改动同一模块时减少冲突
- 持续交付落地:为随时可发布提供代码管理基础
- 大型重构:用特性开关分步上线,避免长分支
- 新成员融入:小改动频繁提交,快速建立反馈循环
- 多版本并行:用发布分支承载版本冻结,主干继续前进
- 度量改善:缩短前置时间,尤其是评审与集成等待
工作流示例
工作流示例
从主干拉出分支 → 小改动 + 评审 → 当天合回主干
未完成功能用开关隐藏
主干始终保持可发布状态
冲突处理:先同步主干再合并,避免积压分支策略对照
| 做法 | 分支寿命 | 适用场景 |
|---|---|---|
| 直接提交主干 | 无分支 | 小改动或评审流程成熟的团队 |
| 短命分支 + PR | 一天以内 | 常规功能开发 |
| 发布分支 | 仅版本冻结期使用 | 多版本并行维护 |
主干开发的隐含前提是自动化测试可信:没有测试护栏就强推主干,缺陷会直接进入发布路径。
推送主干前的本地验证要快:单元测试与静态检查能在几分钟内跑完,开发者才会愿意频繁提交。