恢复损坏的git存储库

Eyo*_*oka 10 git

我的工作git存储库已损坏,它会丢失其中的所有文件,即

$ git log
fatal: bad default revision 'HEAD'  
$ git status  
... told me that all the files are new

但是.git目录确实包含我的对象.

$ du -sh .git
34M    .git
$ git count-objects
4151 objects, 32692 kilobytes
$ git --version
git version 1.6.0.4

我记得在它出错之前做的最后一件事是在NFS挂载的服务器上创建(clone --mirror)备份存储库.但是,克隆的备份存储库以相同的方式被破坏.

如何恢复我的存储库?

Cas*_*bel 9

除了克隆之外肯定会有一些东西,但我知道记住那些东西是多么困难.

你要做的第一件事是看在git的/裁判,看看是否有什么有效的在那里(我不是太乐观,因为你说,有没有出现任何分支机构,但它是值得一试).如果存在任何有效的引用,您可以从中获取一些信息git-reflog.

接下来,我会开始看看git-fsck.其主要目的是验证数据库中对象的连通性和有效性.根据您的回购的具体情况,您可能需要--unreachable--lost-found.希望对象是完整的,所以你需要做的就是找到一些悬空提交哈希来检查并重新创建分支.