场景1: 本地还没有commit
git stash
git stash drop
场景2: 删除未发布的提交
如果确定要删除某几个commit,并且那几个commit的代码还没有提交到远程版本库里的话,945a2f9为要回到的版本
git stash
git reset --hard 945a2f9
git stash pop
reset –hard 一定要慎用!!
这回让你彻底丢失本地的代码(除非有备份过)
场景3:删除已发布的提交
假设代码已经提交到远程版本库了,这时应该使用revert命令,revert命令实际是提交一个新的commit来回滚之前的commit。还是以945a2f9为例,现在想让代码会滚到945a2f9的状态,那么需要revert掉之前的commit
git revert e9d861e e565632 e1eccf9
或者可以这样做,revert掉HEAD的前三个commit
git revert HEAD~3..HEAD
之后就可以将现在的HEAD push到版本库了。
如果发现之前revert操作错了,可以再执行一次revert来取消上次的revert。