假设现在的 git 提交记录有4次,在第二次的时候发生了bug,也就是introduced a bug注释的地方。这个时候我们该如何处理呢?

417e4a9 commit 4
427d76b commit 3
1642475 introduced a bug
71d3ef7 commit 1

来吧,展示!

使用 git reset 71d3ef7,干掉后三条 commit 记录,然后剩下一条。

71d3ef7 commit 1

是命令之后,后三条记录的代码从版本库回到了工作区,然后你工作区也不想要了,直接 git checkout . 删除吧。

那么删掉了之后,我还有找回的机会吗?

有,必须有!用 git reflog 查看 git 提交记录,因为 git log 已经没有后三条的提交记录了。

找到 commit 的 ID 之后,我们执行再次执行 git reset 就可以啦!

git reset 417e4a9

代码又回来了。

注意,谁删的谁找回来,别人是没法帮你找回来的,git reflog 只对自己电脑统计了。