1

我想知道,如果你使用

git rebase --preserve-merges

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

更具体地说,假设我有主题和主分支。以前有一些从 master 到 topic 的合并(所以 topic 不会不必要地远离 master)。从那时起,关于主题的一些额外提交。

假设现在我现在像这样在 master 上重新设置主题:

git checkout topic
git rebase --preserve-merges master

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

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

为了比较,“git help rebase”清楚地表明要重新应用的提交集由 <upstream>..HEAD 给出(在我们的例子中是 master..topic)

4

1 回答 1

0

它似乎大致沿线

git log --ancestry-path `git merge-base master topic`..topic

(即找到两个分支之间的merge-base,找到它和topic之间的commits。)

不过,这并不完全正确。在我的存储库中,这会生成与 rebase --preserve-merges 使用的提交非常相似的列表,但它并不相同。(例如,提交的总数并不完全相同。)

于 2013-04-09T19:44:50.043 回答