比方说,我有一个Git仓库,看起来像这样:如何根据每次提交的日期将两个分支合并为一个分支?
merge-base---A1--A2------A3------A4 (branchA)
\
----------B1------B2 (branchB)
为了让事情变得更简单,让我们说上branchA的提交严格修改的fileA,并branchB的提交严格的修改FILEB。
我想这些分支合并到第三分支,branchAB,其中提交将按日期排序:
merge-base---A1--A2------A3------A4 (branchA)
\
----------B1------B2 (branchB)
\
A1--A2--B1--A3--B2--A4 (branchAB)
有没有办法用一个单一的git命令自动做到这一点,还是我坚持手动方法(如樱桃采摘或rebase -i)?
顺便说一句,merge-base
是一个标签。
我知道第一次合并只是一个快进。那么为什么不在其他分支之一上创建ab分支作为起点呢? – 2011-03-23 23:03:19
@adymitruk:是不是会重新排序提交,以便获得一个分支的所有提交以及所有其他分支的提交?保持订单(基于日期)非常重要。 – splicer 2011-03-24 00:29:41
@adymitruk:再想一想,是的,应该可以在branchA的顶端开始branchAB,然后合并到branchB。重要的是做一个'rebase - 去'去除branchAB上的合并历史记录,按日期重新排序提交。 – splicer 2011-03-24 15:27:01