如何将分支的起点移动到较旧的提交

时间:2021-07-15 21:07:53

标签: git git-branch git-commit git-history

我想将我的分支重新绑定到旧提交上,以排除新提交添加的代码。

我有什么:

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 上创建的。当我意识到时,我已经进行了大量提交,其中包括我不想要的代码更改(CDE)。

如何将 experiment 的起点移动到较旧的提交 B

我已经阅读了 this post,但没有看到任何关于将分支移动到旧提交的有用信息。

1 个答案:

答案 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 是否比您所在的位置新或更旧(一个可能很常见的简单示例:向后移植)。这都是关于每个修订版中引入的更改,这些更改将被重新定位。

相关问题