And*_*ker 3 git branch rebase git-branch
我有:
A--B (master)
\
C--D (bad-branch)
\
E--F (my-branch)
Run Code Online (Sandbox Code Playgroud)
我想要的结果:
A--B (master)
\
E--F (my-branch)
Run Code Online (Sandbox Code Playgroud)
我尝试重新建立my-branch
基础,master
但是当我推my-branch
送到存储库时,它与原始版本合并,并且更改后的错误提交又回来了。
您可以使用该标志将多个提交重新设置到另一个分支--onto
。
首先确保您已签出要变基的分支(并非绝对必要,因为您可以提供要变基的参数,但一步一步通常更清晰、更容易)。
git checkout my-branch
# or git switch my-branch
Run Code Online (Sandbox Code Playgroud)
将前两个提交重新设置为 master:
git rebase --onto master @~2
Run Code Online (Sandbox Code Playgroud)
计算提交次数的另一种方法是仅使用错误的分支名称作为引用:
git rebase --onto master bad-branch
Run Code Online (Sandbox Code Playgroud)
在您的示例中,@~2
onmy-branch
是相同的提交,bad-branch
因此它们可以互换使用。