Git存储库不工作(Git不断删除头文件)

Git存储库不工作(Git不断删除头文件),git,Git,我的git存储库突然损坏(可能是在更新Sublime后,repo中的一些文件仍然打开)。当我试图显示git状态时,收到以下错误消息: error: invalid object 100644 91e213ecdea4b589613a7cd7dc078bc501bc039d for 'cascade_flux/.gitignore' error: invalid object 100644 91e213ecdea4b589613a7cd7dc078bc501bc039d for 'cascade_

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

error: invalid object 100644 91e213ecdea4b589613a7cd7dc078bc501bc039d for 'cascade_flux/.gitignore'
error: invalid object 100644 91e213ecdea4b589613a7cd7dc078bc501bc039d for 'cascade_flux/.gitignore'
error: Error building trees
致命:不是git存储库(或任何父目录):.git

当我查看.git文件夹时,头文件不见了。我试图用命令重新创建文件

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

但是什么也没发生,所以我尝试手动创建该文件,但它被重命名为 头部(VAVRIK-PC的冲突副本2021-05-27)。后来,我尝试断开电脑与互联网的连接(我的回购协议链接到GitHub),并重复了前面的步骤。这一次,我成功地重新创建了头文件并为提交准备了一些更改,但当我尝试提交这些更改时,我收到了以下错误消息:

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

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

从某种意义上说,您在这里很幸运:当Dropbox损坏Git存储库时,有时在您已经丢失一些无法恢复的工作之前,损坏是不可见的


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

某种程度上,你在这里很幸运:当Dropbox破坏Git存储库时,有时,在您已经失去一些无法恢复的工作之前,损坏是不可见的


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

听起来你好像把Git repo放在了一个与Dropbox或Google Drive等云存储同步的目录中。这通常不是一个好主意-那些是为同步文档而设计的,但是git repo更像是运行应用程序的数据库。@是的,我的git repo实际上在Dropbox文件夹中。现在我已经把它移到了外面,可以毫无问题地更改头文件。但是,我仍然无法提交更改并不断收到相同的错误。Dropbox已损坏您的git签出。您最好的选择可能是从GitHub克隆一个新副本,除非您已经提交了尚未提交的文件。@IMSoP好的,谢谢您的帮助。听起来您已经将git repo放在了与Dropbox或Google Drive等云存储同步的目录中。这通常不是一个好主意-那些是为同步文档而设计的,但是git repo更像是运行应用程序的数据库。@是的,我的git repo实际上在Dropbox文件夹中。现在我已经把它移到了外面,可以毫无问题地更改头文件。但是,我仍然无法提交更改并不断收到相同的错误。Dropbox已损坏您的git签出。您最好的选择可能是从GitHub克隆一个新副本,除非您已经提交了尚未提交的文件。@IMSoP好的,谢谢您的帮助。