假设你有3个commit如下:
commit 3 0354e04commit 2 61c0126commit 1 2facd81
其中最后一次提交commit 3
是错误的,那么可以执行:
git reset --hard HEAD~1(~1回退到上一个版本,~2回退到上两个版本,其他以此类推)
你会发现,HEAD is now at 61c0126
。
然后再使用git push --force
将本次变更强行推送至服务器。这样在服务器上的最后一次错误提交也彻底消失了。
注意: 这类操作比较比较危险,例如:
- 在你的
commit 3
之后别人又提交了新的commit 4
,那在你强制推送之后,那commit 3
之后的所有提交都会消失。 - 在git reset 之前,其他文件的只是通过git add 命令进行本地追踪,那reset后所有本地文件就会消失,找回文件请参考:https://www.cnblogs.com/hope-markup/p/6683522.html