-1

今天我开始做我的一个项目,但 git 似乎已经“忘记”了存储库。任何 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

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

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

4

1 回答 1

2

HEAD 文件需要指向一个分支而不是一个提交。如果您知道您正在处理的分支的名称,请尝试以下操作:

头文件

ref: refs/heads/branch_name_here

您可能需要挖掘您的 .git/refs/heads 文件夹。那里的文件应该以分支名作为文件名,并且该分支中的最新提交作为唯一内容。

祝你好运!

于 2013-07-24T13:53:16.700 回答