假设你有3个commit如下:
commit 3
commit 2
commit 1
其中最后一次提交commit 3
是错误的,那么可以执行:
git reset --hard HEAD~1
你会发现,HEAD is now at commit 2
。
然后再使用git push --force
将本次变更强行推送至服务器。这样在服务器上的最后一次错误提交也彻底消失了。
值得注意的是,这类操作比较比较危险,例如:在你的commit 3之后别人又提交了新的
commit 4
,那在你强制推送之后,那位仁兄的commit 4
也跟着一起消失了。
引自https://segmentfault.com/q/1010000002898735