GitFlow 的问题
GitFlow 为大型团队设计,有 main、develop、feature、release、hotfix 五种分支。对于 3-5 人的小团队,维护这些分支的成本远超收益,合并冲突是家常便饭。
trunk-based 的核心思路
- 只有一条长期分支 main
- feature 分支生命周期不超过 2 天
- 用 feature flag 控制未完成功能的可见性
- 每天至少合并一次到 main
配合 CI 使用
每次推送到 main 触发自动测试和部署,配合 feature flag 实现"代码已合并但功能未上线"的状态,避免长期维护并行分支。
迁移建议
从 GitFlow 迁移时,先清理所有已合并的 feature 分支,统一从 main 拉新分支,约定好 feature flag 的命名规范即可开始。