场景
由于误操作,经常可能会将一些测试方法等直接选中并 commit 到了本地仓库中。但是还没有 push 出去。
这个时候,你可以用下面的方法补救。
示例
- 删除最近的一次 commit, 但保留已有的修改
$ git reset --soft HEAD~1
- 删除最近的一次 commit, 并且不保留任何已有修改
$ git reset --hard HEAD~1
- 放弃本地所有修改, 重置到与远程分支一致的状态
$ git reset --hard origin/master
PS
注意,示例 1 - 2 必须确保已经切换到你要删除 commit 的那个分支上, 而不是在别的分支上。
同样的,示例 3 中 origin/master, 其中 master 为你需要重置到的那个远程分支名称。