修复 Windows 中损坏且松动的 Git Head

los*_*193 5 git corrupt file loose

我的计算机由于内核恐慌而关闭,我在 Windows 虚拟机上丢失了 git 存储库。当我访问 .net 时,出现以下错误:

corrupted loose reference file: HEAD
Run Code Online (Sandbox Code Playgroud)

我有一个名为 .git 的文件夹,其中包含我的分支列表。

在此输入图像描述 有没有办法可以将其转换回 git 实体?或者我必须重新克隆目录?

Mar*_*ger 8

您在目录中显示的.git不是分支列表;而是分支列表。它是 git repo 元数据的标准结构。这包括一些符号引用,例如HEAD. 当引用作为文件存储在磁盘上时,它被称为“松散”引用,这就是我认为错误消息所讨论的内容。

所以该错误似乎表明该文件.git/HEAD已损坏。这本身并不难修复(尽管大多数 git 命令无法工作,因为它们当前无法识别这是一个存储库,因此需要一些组装);系统突然崩溃后,更大的问题是是否还有其他东西也损坏了。但作为起点,你可以尝试类似的事情

# back up .git/HEAD somewhere, just in case
echo 'ref: refs/heads/master` >.git/HEAD
Run Code Online (Sandbox Code Playgroud)

现在希望你的仓库能再次被认可。接下来,明智的做法是进行一些检查,例如

git fsck
Run Code Online (Sandbox Code Playgroud)

也许可以检查您是否对预期分支进行了预期的更改。

最脆弱的事情是未提交的更改(尤其是未分阶段的更改)。但至少如果上述步骤进展顺利,您可以评估损失并决定下一步的方向。