有时不小心,因为分支切换,rebase,merge等多种原因,导致代码丢失,或者想切回去看之前某个时间点的文件记录,这是一般我们会使用git log进行查看。然而git log只记录了提交过的记录,并不包含本地的分支操作,此时我们就需要一个能查看更多信息的命令:git reflog
git reflog是HEAD所指向的一个顺序的提交列表:它的undo历史。reflog并不是repo(仓库)的一部分,它单独存储,而且不包含在pushes,fetches或者clones里面,它纯属是本地的。 reflog可以很好地帮助你恢复你误操作的数据,例如你错误地reset了一个旧的提交,或者rebase等等,这个时候你可以使用reflog去查看在误操作之前的信息,并且使用git reset --hard 去恢复之前的状态。