我们在使用 git 进行版本控制时,可能遇到这样的需求:同时维护多个永久性的 branch(分支),每个 branch 可能对应于针对不同客户的不同实现;在分支间切换,可以方便地为各个客户生成特定的版本。这些所谓“永久性”的分支,与通常使用分支的情形不同,因为它们会长期存在并随着整个软件的演进不断变化,而不是实现某些 feature 后就并入主分支(master)。各个永久分支的差异并不大,如何管理各个分支的公共部分(common part)成为一个重要问题。
我们首先给出满足这一需求的方案,然后指明对于遗留的、已经“污染”的分支结构如何重组为新方案。
最合理的分支结构应该是这样的,选取 master 或某个分支作为共同部分的代表,也就是说所有对共同部分的更改都切换到这个分支下进行;然后各个永久分支只改动自己特殊的部分,并不断 rebase 到这个共同分支的顶端(head),以各自更新共同部分。如下图。

本文探讨了在长期维护多个Git分支时如何有效管理公共部分,提出以一个分支作为公共部分代表,其他分支通过rebase更新公共部分。对于已有混乱分支,提供了通过cherry-pick和文件级合并来整理的步骤,以减少冲突并实现结构优化。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



