项目中遇到的问题,当时的情况是,自己花时间重构一个项目,本来小有成就感,并且代码的整洁度挺好,眼看任务就好完成了,第二天,做一个东西,想看看为优化之前一个地方的属性名,手贱把所有的删除了,就想回到开发分支上看,结果,还好当时想着add ./一下,回到dev分支,进行各种操作后 git checkout .之后,over,所有都没了,当时很天真以为自己的分支上还有。结果就是全回到之前的状态了。
怎么办呢,发现自己并未提交,不能回到之前的版本了,通过查看日志,也没有想要的东西。
最后通过查询资料,本来放弃了,但是想着那么多的心血,得出结果。
执行:
$ find .git/objects -type f | xargs ls -lt | sed 60q 这里的60q就是最近的60次缓存
大概是这个意思,这个时候有个东西就很重要了,就是上面划线的地方
最后使用命令:git cat-file -p 064ca1f...(太多了) > a.md 后面的文件名可以自己定义。就可以发现你要得文件,回到了这个a.md里面了,兴奋的不要不要的。
参考: