我有一个回购并且做了一个git add。这是第一次。
但后来意识到有很多文件不应该存在,所以我想重置然后修复.gitignore然后重做。
执行git reset --hard
之后我的所有文件都不见了。
问题,有没有办法“撤消”这个?
急需帮助。 我没有其他备份,推送到git应该是我的备份;>)
答案 0 :(得分:0)
此链接提供了恢复文件的方法。
git add + git reset hard deleted working copy file - undo?
这有点痛苦,但比重做所有工作要好。
我使用此命令将所有blob列入文本文件(blobs.txt)。
git fsck | awk '{if(/blob/) print $3}' > blobs.txt^C
然后我编写了一个简短的bash脚本来遍历文件并将每个blob的内容捕获到文件中。这是bash脚本:
#!/bin/bash
while read p; do
git cat-file blob $p > $p.txt
done <blobs.txt
这给了我一大堆名为blobxxx.txt的文件 然后我不得不手动浏览每个并确定我需要的文件名。一点点过程,但它起作用,因为我只需要找到我的源文件。
放松的大声。
答案 1 :(得分:-2)
基本上,答案是否定的。正如你所说,你搞砸了。如需更详细的解答,请关注此帖: Recover from git reset --hard?