我想要重基到一个特定的提交,而不是另一个分支的HEAD:
A --- B --- C master
\
\-- D topic
to
A --- B --- C master
\
\-- D topic
而不是
A --- B --- C master
\
\-- D topic
我怎样才能做到呢?
一个更简单的解决方案是git rebase <SHA1 of B> topic。不管你的头在哪里,这都是有效的。
我们可以从git rebase文档中确认这种行为
<upstream>要比较的上游分支。可能是任何有效的
提交,而不仅仅是一个现有的分支名称。默认为配置的
当前分支的上游。
你可能会想,如果我在上面的命令中也提到topic的SHA1会发生什么?
git rebase <SHA1 of B> <SHA1 from topic>
这也可以工作,但rebase不会使Topic指向这样创建的新分支,HEAD将处于分离状态。因此,从这里开始,您必须手动删除旧的Topic,并在rebase创建的新分支上创建一个新的分支引用。
一个更简单的解决方案是git rebase <SHA1 of B> topic。不管你的头在哪里,这都是有效的。
我们可以从git rebase文档中确认这种行为
<upstream>要比较的上游分支。可能是任何有效的
提交,而不仅仅是一个现有的分支名称。默认为配置的
当前分支的上游。
你可能会想,如果我在上面的命令中也提到topic的SHA1会发生什么?
git rebase <SHA1 of B> <SHA1 from topic>
这也可以工作,但rebase不会使Topic指向这样创建的新分支,HEAD将处于分离状态。因此,从这里开始,您必须手动删除旧的Topic,并在rebase创建的新分支上创建一个新的分支引用。