git 重定基底到另一个分支并移除旧分支的变更

0g0grzrc  于 2022-11-20  发布在  Git
关注(0)|答案(1)|浏览(158)

我有:

A--B             (master)
    \    
     C--D        (bad-branch)
         \
          E--F   (my-branch)

我想要的结果:

A--B             (master)
    \    
     E--F        (my-branch)

我尝试将my-branch重定为master,但是当我将my-branch推到repo时,它与源文件合并,并且带有更改的错误提交又回来了。

s2j5cfk0

s2j5cfk01#

您可以使用--onto标志将多个提交重定基到另一个分支上。
首先确保你已经 checkout 了你想要重定基的分支(不是严格必要的,因为你可以提供那个参数来重定基,但是一步一步的通常更清楚和容易)。

git checkout my-branch
# or git switch my-branch

将前两个提交重定到master上:

git rebase --onto master @~2

计算提交次数的另一种方法是使用错误的分支名称作为引用:

git rebase --onto master bad-branch

在您的示例中,my-branch上的@~2bad-branch是相同的提交,因此它们可以互换使用。

相关问题