改变分支点

Sri*_*ran 10 git

我有一个分支调用feature,它有一些提交.分支及其提交仍然是我的机器的本地(尚未push编入公共存储库).图表看起来像

A---B---C---D---E---F---G master
                    \
                     P---Q---R feature
Run Code Online (Sandbox Code Playgroud)

现在我意识到我应该feature从之前的提交中删除分支master.让我们说提交C.换句话说,图表看起来应该是这样的

A---B---C---D---E---F---G master
         \
          P---Q---R feature
Run Code Online (Sandbox Code Playgroud)

我试图在本质上做的是恢复提交D,EF出的feature分支.是的,我可以revert一次提交一个,但有太多可以恢复; 上图只是一个例子.

opq*_*nut 11

你想做的是一个rebase.要获取提交P,QR在顶部应用它们C,您执行:

git rebase --onto C F feature
Run Code Online (Sandbox Code Playgroud)

有关git-rebase更多信息,请参见手册页.

  • 完美的。事实证明我没有对手册页进行足够的阅读。在发布问题之前,我确实做了一个“rebase”。然而,这只是说“commit C”已经存在。秘密武器是“--onto”开关。谢谢 (2认同)