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

How to move starting point of branch to an older commit

我想将我的分支变基到一个旧的提交上,以排除新提交添加的代码。

我有:

A---B---C---D---E master
                 \
                  F---G---H---I---J experiment

我想要的:

A---B---C---D---E master
     \
      F---G---H---I---J experiment

说我想在提交 B 时创建我的 experiment 分支,但没有意识到我在 E 上创建了它。当我意识到时,我已经做了一堆提交,其中包括我不想要的代码更改(CDE)。

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

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

简单:

git rebase --onto B master experiment

该命令是这样读的:git rebase --onto new-base discard-revisions-in-this-history this-is-what-i-want-to-rebase

Git 实际上并不介意基地比你所在的地方新还是旧(可能相当常见的简单示例:backport)。这都是关于将重新设置基础的每个修订版中引入的更改。