为什么大型公司和快速发展的初创企业禁止合并提交
内容提要
在Git开发中,变基(rebase)逐渐受到青睐,因为它能创建更清晰的历史记录,避免合并提交的混乱。许多大型闭源项目开始禁止合并提交,转向变基工作流程。使用工具如Graphite可以简化变基操作,帮助开发者更高效地管理代码变更。
延伸解读
变基工作流的实际优势
文章指出,变基能创建更清晰、易理解的历史,避免合并提交的杂乱。主干分支保持线性,分支成为短暂的原子差异。此外,变基使回退操作更简单,因为合并提交有多个父提交,Git难以自动识别主干父提交,而压缩-变基-合并策略在主分支留下单个提交,便于回退。
大型项目为何倾向禁止合并提交
基于Graphite上数万个仓库的数据,超过60%的大型仓库(PR数超过1万)禁止合并提交,且大型仓库禁止合并提交的可能性是小型仓库的两倍以上。文章还提到,较新的仓库也更可靠地禁止合并提交。这表明大型科技公司和快速发展的初创企业正越来越多地转向以变基为中心的工作流。
变基的挑战与工具支持
文章承认变基工作流面临挑战,主要源于Git和GitHub的原生支持不足。变基命令可能令人生畏,恢复之前的提交版本常需深入Git引用日志。即使操作正确,GitHub的PR时间线也会被强制推送事件淹没,即使只是将更改变基到更新的主干且差异未变。不过,像Graphite这样的工具可以自动化变基,简化依赖PR的管理。
Q&A
为什么大型公司和初创企业禁止合并提交?
因为合并提交会导致历史记录混乱,变基能创建更清晰的历史,保持主干分支的线性。
变基在Git开发中有什么优势?
变基可以创建更清晰的历史记录,简化回退操作,并避免合并提交的复杂性。
使用变基工作流程时可能遇到哪些挑战?
主要挑战包括Git和GitHub对变基支持不足,以及执行变基命令的复杂性。
如何简化变基操作?
可以使用工具如Graphite来自动化变基操作,帮助开发者更高效地管理代码变更。
为什么变基在闭源开发中逐渐被接受?
因为变基能够避免长时间分支合并时的痛苦,保持主干的稳定性和一致性。
大型项目中变基的使用情况如何?
超过60%的大型项目禁止合并提交,转向变基工作流程以保持代码整洁。