首页 > 解决方案 > Git 存储库不工作(git 不断删除 HEAD 文件)

问题描述

我的 git 存储库突然损坏了(可能是在使用 repo 中的一些文件更新 Sublime 之后仍然打开)。当我尝试显示 git 状态时,我收到了以下错误消息:

fatal: not a git repository (or any of the parent directories): .git

当我查看 .git 文件夹时,发现 HEAD 文件丢失了。我尝试使用命令重新创建文件

echo 'ref: refs/heads/master' > ../.git/HEAD

但什么也没发生,所以我尝试手动创建文件,但它被重命名为 HEAD (VAVRIK-PC's conflicted copy 2021-05-27)。后来我尝试断开我的电脑与互联网的连接(我的 repo 链接到 GitHub)并重复前面的步骤。这次我设法重新创建了 HEAD 文件并暂存了一些更改以进行提交,但是当我尝试提交更改时,我收到以下错误消息:

error: invalid object 100644 91e213ecdea4b589613a7cd7dc078bc501bc039d for 'cascade_flux/.gitignore'
error: invalid object 100644 91e213ecdea4b589613a7cd7dc078bc501bc039d for 'cascade_flux/.gitignore'
error: Error building trees

再次打开 Wi-Fi 后,HEAD 文件消失了。有什么办法可以解决这个问题吗?

标签: git

解决方案


在某种程度上,您在这里很幸运:当 Dropbox 损坏 Git 存储库时,损坏有时是不可见的,直到您已经无法恢复地丢失了一些工作。

一般来说,Git 需要完全控制其数据库(在.git目录中)。切勿将它们放在共享空间中,无论是使用 Dropbox、iCloud 还是任何其他文件同步软件。在某些非常特殊的情况下,当您知道自己在做什么并且确定 Git 没有修改目录的内容时,可以通过某种网络或其他复制软件复制目录。但是 Git 对这些东西在自动解决冲突更改时所做的更改类型过于敏感,因此共享软件太容易弄乱 Git 数据库。


推荐阅读