1.判断文件是否可恢复
首先判断执行git reset --hard
命令之前是否有其他操作:
- 没有执行
git add ., git commit -m'注释'
操作,文件不可恢复。 - 执行
git add .
,没有执行git commit -m'注释'
操作,文件可恢复,比较麻烦。 - 执行
git add ., git commit -m'注释'
操作,文件可恢复,属于正常操作。
2.文件恢复
2.1 情况二的文件恢复
#在待恢复的分支下执行,lost文件
git fsck --lost-found
# 如下图所示,找到该路径
cd .git/lost-found/other
# 如果文件太多,手动检查太麻烦,6q表示输出最近6次的add内容
"cmd不能执行的话,使用git bash窗口操作"
find .git/objects/ -type f | xargs ls -lt |sed 6q
# 定位到指定文件,在当前目录下可看到a.md文件
git cat-file -p 名字> a.md
# 查看文档内容
vi a.md
![](https://img-blog.csdnimg.cn/ce3db9db629649f3b9ebf2b4d87a6dd8.png)
![](https://img-blog.csdnimg.cn/0326c0e529d648728401c1f781aae2e6.png)
2.2 情况三的文件恢复
# 返回到某一次commit前的代码
git reset --hard xxxxxx(指定版本号)