git reflog : 显示整个本地仓储的commit, 包括所有branch的commit, 甚至包括已经撤销的commit, 只要HEAD发生了变化, 就会在reflog里面看得到. git log只包括当前分支的commit.
场景: 当我们一连提交了六个记录,但是突然发现第二个记录到第六个记录是不需要的,激动的我们立刻回退到第一个记录的时刻,可是最后被告知,第四个和第五个记录不是自己做的,但是回退到第一个记录把其他五个记录都删了,我们要如何找回呢?
答案是使用 git reflog , 他可以显示所有的commit记录!
接下来只要将HEAD指向记录六的哈希码就可以让六个文件都恢复:
场景变化: 当我们回退到第一个记录的时候,我们又提交了记录七,当我们使用git reflog找回了记录二到记录五,可是记录七的代码丢了,如何找回呢?
使用 git cherry-pick 文件七的哈希码
至此,七个提交记录的代码都找回来啦!