git:关于svn dcommit合并/ rebase的正确方法

时间:2010-06-08 12:45:15

标签: git merge git-svn rebase dcommit

我有以下情况(主要是因为我在开始时并没有真正想到它 - 或者更确切地说,我认为这不应该是我做这个问题的方式但现在我被绊倒了):< / p>

... --- A --- B1 --- ... --- Bn

... --- git-svn

其中Agit-svn处于相同的状态(完全相同的文件和文件内容),但它们在历史记录中没有任何共同点。

我想要:

... --- git-svn --- B1 --- ... --- Bn

或者至少,当我执行svn dcommit时,我希望将提交B1提交到Bn而不是其他任何内容。

我不确定dcommit是如何工作的。所以,如果我得到这样的东西:

... ------------ A --- B1 --- ... --- Bn
                  \                    \
... --- git-svn -- A' ----------------- B'

dcommit会按照我想要的方式行事吗?因为如果是这样,那很容易获得(将A合并到git-svn确实可以正常工作,因为它们在内容方面是相同的。)

或者我应该做些什么的变形?但我不想在Agit-svnB1上重新Bn

1 个答案:

答案 0 :(得分:0)

dcommit为从svn commitgit-svn(或您指定的提交)的每次提交执行HEAD

我认为你的最后一句是我接近它的方式:将B1变为Bngit-svn。这样做如下:

git checkout Bn
git rebase --onto git-svn B1 Bn