错误:对象文件为空.git/objects /../ ..为空 - 致命:松散的对象...已损坏

Huu*_*ons 5 git corrupt

所以这是过去三周内第五次发生这种情况,我真的很难过为什么会这样.这是我在'git status'时得到的确切消息

error: object file .git/objects/48/088f00d90b0d27de65336bb9ed9a75b0cfed33 is empty
fatal: loose object 48088f00d90b0d27de65336bb9ed9a75b0cfed33 (stored in .git/objects/48/088f00d90b0d27de65336bb9ed9a75b0cfed33) is corrupt
Run Code Online (Sandbox Code Playgroud)

我已经尝试过删除损坏对象的建议,但是同样的错误会出现另一个松散的对象.每次我这样做,最终会有大约30个松散的物体被我删除,然后在所有腐败的物体消失后它仍然会给我一个错误.

这是第五次发生这种情况,git或与之相关的东西都有问题.我已经尝试重新安装git,但我仍然最终得到了腐败的对象.我正在使用运行Ubuntu的虚拟机,如果这会导致这样的事情,我不知道.我也尝试过转换到Linux mint,我也反击了这个问题.

最后,我总是将更改保存到文本文件,删除我的存储库,从git hub中提取新的存储库,然后重新编辑更改.这可行,但是耗时且远非理想.我不一定想找到解决这个问题的方法,而是找出导致它的原因以及如何防止它再次发生.

Mat*_*Moy 0

通常不会发生这种情况,因为 git 首先将文件内容写入临时文件,然后将该文件重命名到其最终位置。在实践中,我确实看到了由于文件系统损坏而导致的空 Git 对象文件(每当我看到人们抱怨这样的空文件时,用于文件夹共享的 VirtualBox 的 vboxsf 似乎就是罪魁祸首)。

设置core.fsyncobjectfilestrue可能会有所帮助。