为什么我更喜欢基于主干的开发( 二 )


5. 减轻技术债务长期维护的分支常造成“合并地狱”现象,这是由于主分支(例如 'main')与特性分支之间的差异过大,导致合并过程变得异常困难 。这种情况可能引发技术债务的累积,因为解决合并冲突时可能会采用快速但非理想的修复方案,或者接受集成开发环境(IDE)的自动建议而可能对其并未完全理解 。相较之下,主干开发、频繁的合并操作和较小的代码更改则使技术债务的管理和减少变得更为便捷 。
总结我个人确信主干开发具备显著优势,并在实际项目中亲自体验了采用此种方法的团队效益 。然而,这需要团队共同建立一种思维方式和文化氛围 。这其中涉及频繁合并他人的代码更改,经常进行小规模的代码修改,按部就班地进行增量改动 。这可能是一种需要适应的开发习惯 。整个团队采用一致的方法和文化,关键在于实践配对编程、全面自动化测试和进行适当的代码审查 。
有序、纪律的主干开发能简化流程,增强协作,提升代码稳定性,支持CI/CD实践,并减轻技术债务 。如果你一直采用基于分支的模型,转变可能会面临挑战,但从长期来看,优势是明显的 。若你对此感兴趣,还可以参阅Dave的文章,他在其中解释了主干开发的障碍 。
版本控制分支、提交、主干开发、持续集成/部署等是软件开发过程中的关键概念 。
译者介绍刘汪洋,51CTO社区编辑,昵称:明明如月,一个拥有 5 年开发经验的某大厂高级 JAVA 工程师,拥有多个主流技术博客平台博客专家称号 。
原文标题:Why I Prefer Trunk-Based Development,作者:Trisha Gee




推荐阅读