我在本地的master分支中创建了两个提交。而且我不希望他们成为主人。因此,我使用命令git checkout -b new-branch
从master分支到一个单独的分支,并将此分支推送到github。之后,这两个提交都存在于new-branch
和master
分支中。如何从master
删除这两个提交,但将其保留在new-branch
?
答案 0 :(得分:1)
如果您尚未推送这些提交,则需要在创建分支后重置master:
git checkout master
git reset --hard @~2
这将从主分支中删除最后两次提交。
如果这些提交不是最后两个提交,则需要找到要删除的最早提交的引用(例如SHA1' 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
您的主分支)