如何从master分支中删除git提交但是将它们保存在其他分支中?

时间:2017-12-02 01:25:28

标签: git github version-control

我在本地的master分支中创建了两个提交。而且我不希望他们成为主人。因此,我使用命令git checkout -b new-branch从master分支到一个单独的分支,并将此分支推送到github。之后,这两个提交都存在于new-branchmaster分支中。如何从master删除这两个提交,但将其保留在new-branch

1 个答案:

答案 0 :(得分:1)

如果您尚未推送这些提交,则需要在创建分支后重置master:

git checkout master
git reset --hard @~2

这将从主分支中删除最后两次提交。

如果这些提交不是最后两个提交,则需要找到要删除的最早提交的引用(例如SHA1&#39; X&#39;)并执行交互式rebase。< / p>

git checkout master
git rebase X~

您可以从主分支中删除这两个提交 但是您可能必须重新设置新创建的分支,以便将其基础更改为新的主HEAD:

git checkout new-branch
git rebase --onto master new-branch~2 new-branch

如果您已经推送了master,但是您只是在处理该repo,那么您也可以考虑这种方法(以及git push --force您的主分支)