I did:
git init
git add .
git rm -rf dirname
看了其他答案,git reset --hard HEAD
, git checkout -f
and git reflog
不起作用,显然是因为没有可以返回的 HEAD,也没有可以从中获取文件的提交。
有办法找回文件吗?
Warning: 跑步git prune
没有-n
选项1)将擦除您无法访问的数据。
可能有一种方法,使用git prune https://git-scm.com/docs/git-prune and git cat-file https://git-scm.com/docs/git-cat-file.
Running git prune -n
将列出哪些对象将通过修剪删除:
$ git prune -n
9cc84ea9b4d95453215d0c26489d6a78694e0bc6 blob
c315143703752ef4d11ca7d93f2c324872b2ebff blob
每一行对应一个已删除的文件。
现在,使用git cat-file
,我们可以将删除的文件的内容恢复到新文件中:
git cat-file -p 9cc84ea9b4d95453215d0c26489d6a78694e0bc6 > restored-filename
(1) 从git prune
docs:
NAME
git-prune - 从对象数据库中删除所有无法访问的对象
选项
-n
--试运行
不要移除任何东西;只需报告它将删除的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)