git 删除/回退本地提交
git reset --mixed [提交id]:
此为不带参数执行 git reset 时的默认方式,它会将当前分支(HEAD)指向指定提交
回退了 git commit 和 git add 操作,但本地文件(工作区)保持不动
可以重新暂存提交或直接丢弃更改。
git reset --soft [提交id]:
它也是将当前分支(HEAD)指向指定提交
但只回退了 git commit 操作,不对 git add 回退,即所有修改都还在暂存区(index)
如果还要提交,直接commit即可,如果想要放弃,则需要先从暂存区取消暂存再进行丢弃。
git reset --hard [提交id]:
它是直接将当前分支(HEAD)指向指定提交
暂存区(index)、本地文件(工作区)都会被直接修改,会导致所撤销的修改直接丢失,这个需要谨慎操作!
故最安全的是通过 --soft 进行回退,再自行选择性或全部的取消暂存丢弃提交即可。
可以注意,在任何操作后,使用 git status 命令查看当前状态!
参考:https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E7%BD%AE%E6%8F%AD%E5%AF%86#_git_reset
输了你,赢了世界又如何...