21.从已经丢到只剩.git的目录中恢复文件

朋友的电脑出了意外,本地存的代码文件夹都只剩下了.git目录,其他文件全都不见了。.git目录下只有objects目录,git操作不认为这是一个git管理的文件夹。
没关系,让我们死马当活马医一下。

首先重建一下目录
在命令行进入.git 目录,创建一个HEAD文件
echo “ref:refs/heads/master” >.git/HEAD
创建文件夹:
mkdir -p .git/refs/heads

然后配置一下:
git config –file .git/config user.name “bobo”
git config –file .git/config user.email “xxxxx@xxx.com

git fsck –full
输出的大致是:
notice: HEAD points to an unborn branch (master)
Checking object directories: 100% (256/256), done.
notice: No default references
xxxxx commit e245c3b8db9d65c62924f7aa10a4b8f3b369d4cb

复制一下最后那串e245c3b8db9d65c62924f7aa10a4b8f3b369d4cb,这个是hash。当你重建了git之后,原有的提交就成了悬空提交,但是仍然能够用hash访问
git checkout e245c3b8db9d65c62924f7aa10a4b8f3b369d4cb

好了,看看当前目录吧


补充,在过程中可能出现多个提交多个hash串的情况,需要挨个试试