我不小心做了两次相同的提交,然后以某种方式合并了它们,现在有一个名为“将远程跟踪分支'origin/lab1'合并到lab1”的提交,而且我的本地存储库显然没有同步,这看起来很简单,但我卡住
尝试将提交压缩到 github 桌面上的一个,但它显示“无法压缩。压缩会重放所有提交,直到压缩所需的最后一个提交。这些提交中不能存在合并提交。”
我知道如何在本地存储库上修复此问题,但如何从 github 中删除该合并提交?
如果该合并提交是 lab1 上的最新提交,您可以简单地重置之前的一个提交(确保您没有任何正在进行的工作):
git switch lab1
git reset --hard lab1~
git fetch
git rebase origin/lab1
git push
但是您已经在合并提交之后完成了提交,那么您需要标记它们并重播它们:
git switch lab1
git branch <sha1 of the merge commit> m
git branch lab1 tmp
git reset --hard m~
git fetch
git rebase origin/lab1
git rebase --onto lab1 m tmp
git switch lab1
git merge tmp
git push
如果我在提交之后还有提交,我也想恢复,我是否可以一直这样做回到我想要的提交?