git rebase --preserve-merges使用的确切修订范围是什么?

时间:2013-04-09 19:44:50

标签: git rebase git-rebase

我想知道,如果你使用

git rebase --preserve-merges

rebase尝试播放的确切提交列表是什么。

更具体地说,我有主题和主要分支。以前有一些从主人到主题的合并(因此主题不会与主人不必要地相距甚远)。从那时起,就主题提出了一些额外的提交。

现在假设我现在在主人身上修改主题:

git checkout topic
git rebase --preserve-merges master

git将在rebase“临时区域”中存储然后在master上重新应用的确切提交是什么?

如果答案概括为使用--onto和其他参数,则额外获得信用。

为了比较,“git help rebase”很明显,重新提交的提交集由< upstream> .. HEAD(在我们的例子中为master..topic)

提供

1 个答案:

答案 0 :(得分:0)

似乎大致沿着

的路线
git log --ancestry-path `git merge-base master topic`..topic

(即找到两个分支之间的合并基础,找到它与主题之间的提交。)

但是,这不太对劲。在我的repo中,这会生成一个非常类似的rebase --preserve-merges使用的提交列表,但它并不相同。 (例如,提交的总数不完全相同。)