我想将我的分支重新绑定到旧提交上,以排除新提交添加的代码。
我有什么:
A---B---C---D---E master
\
F---G---H---I---J experiment
我想要的:
A---B---C---D---E master
\
F---G---H---I---J experiment
假设我想在提交 experiment
时创建我的 B
分支,但没有意识到我是在 E
上创建的。当我意识到时,我已经进行了大量提交,其中包括我不想要的代码更改(C
、D
、E
)。
如何将 experiment
的起点移动到较旧的提交 B
?
我已经阅读了 this post,但没有看到任何关于将分支移动到旧提交的有用信息。
答案 0 :(得分:2)
简单:
git rebase --onto B master experiment
该命令读作如下:git rebase --onto new-base discard-revisions-in-this-history this-is-what-i-want-to-rebase
。
Git 实际上并不介意 base 是否比您所在的位置新或更旧(一个可能很常见的简单示例:向后移植)。这都是关于每个修订版中引入的更改,这些更改将被重新定位。