假設你有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
也跟着一起消失了。
b00cc5a是git上提交的番號,想退到哪裏就寫哪裏。
iosdeMac-mini-2:ZZV2ex ios$ git reset b00cc5a
iosdeMac-mini-2:ZZV2ex ios$ git push --force
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/mlpqaz/V2ex.git
+ 7336f1a...b00cc5a master -> master (forced update)
iosdeMac-mini-2:ZZV2ex ios$