树状与网状版本仓库分析
问题背景
软件版本结构并不是总是线状的.线状,即版本按先后顺序一个接一个地更新,这是非常理想的情况.实际上大部分项目并不这样维护.
项目时间久了,版本可以变得非常复杂.
考虑下面的仓库:
主干分支为master, 另外还有三个分支C,B1及B2.
它们的关系是,master维护最基本的共用代码,为其它分支所共用,C在master上定制的,B1与B2在C上定制的.
此时的任务是,在B1及B2上应用最新的master代码,要怎么处理呢?
树状结构
即使用rebase对分支进行重构,让版本保持树状结构,分支之间没有回环.
树状方式的优点是明显的,它能清晰地展示分支之间的关系.
两个分支运算的时候,寻找公共祖先是非常容易的.
为了完成上述的任务,可以有两种方式:
树状方式一
这种方式,为了尽量体现分支之间的关系,就是先把C2 rebase到master上,再将B1,B2分别rebase到C2:
<