什么可能会损坏我的git repo?

时间:2013-07-24 13:46:20

标签: git

今天我开始研究我的一个项目,但是git似乎已经忘记了#34;关于存储库。任何git命令(init除外)都会导致: fatal: Not a git repository (or any of the parent directories): .git

但是我在.git存在的目录中。谷歌搜索了一段时间后,我发现git需要一个名为HEAD的文件,它是指向" HEAD"的指针。但是这个文件丢失了。我还发现ORIG_HEAD,我确实应该指向一个较老的" HEAD"。

我尝试做cp ORIG_HEAD HEAD,这让git意识到它是一个存储库,但是:

$ git status

fatal: unable to read tree 9d1dcfdaf1a6857c5f83dc27019c7600e1ffaff8


$ git log
commit ab071ed2e391f0d8e7f0e3d3a7f86735fe3947b9
Author: Esa Varemo <esa@kuivanto.fi>
Date:   Fri Jul 19 19:00:05 2013 +0300

    Added a template config file


< a few commits cut out>    


error: Could not read 5af6cdcf9387971ef52fdc0d00550fbc49d325c2
fatal: Failed to traverse parents of commit 948dd8ba52a36f780d58d38f7e1e083a277cbfe7

几天前我上次工作时没有问题。我更改了一些文件,提交了更改并推送到远程仓库(所以我确实有备份)。

任何想法可能发生了什么?

1 个答案:

答案 0 :(得分:2)

HEAD文件需要指向分支而不是提交。如果你知道你正在处理的分支的名称,请尝试:

HEAD文件

ref: refs/heads/branch_name_here

您可能需要挖掘.git / refs / heads文件夹。其中的文件应该使用branchname作为其文件名,并将该分支中的最新提交作为唯一内容。

祝你好运!