在git中,如何撤消所有更改并移动分支而不删除它?

时间:2014-04-02 05:26:41

标签: git

我没有删除分支的权限。我的情况最容易用插图来描述。假设主干线提交被称为M1,M2,......并且分支提交被称为B1,B2等等

M1 - M2 - M3 - M4 - M5
      \
       B1 - B2

我需要撤消提交B1和B2,然后实际上让M4的分支(带有新的提交),所以像这样:

M1 - M2 - M3 - M4 - M5
                \
                 Bnew1 - Bnew2

同样,我实际上不能删除分支,它需要保持相同的名称。我真的不在乎是否废弃了分支'B'的历史。此外,假设所有内容都已被推送。我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以结帐分支B并执行git rebase。

git checkout B

git rebase M4

其中M4是提交M4的SHA。

这应该将您的分支移动到新的基础。 虽然如果你已经推动了分支B,并且你仍然做了一些改变,那么如果你只是一个贡献者,或者如果你是一个团队工作者,那么就做好一些工作的准备。