6

所以这是过去三周内第五次发生这种情况,我真的很难理解为什么这种情况会一直发生。这是我在执行“git status”时得到的确切信息

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

我已经尝试过删除损坏的对象等建议,但同样的错误出现在另一个松散的对象上。每次我这样做时,最终都会有大约 30 个我必须删除的松散对象,然后在所有损坏的对象都消失后它仍然给我一个错误。

这是第五次发生这种情况,git 或与之相关的东西一定有问题。我已经尝试重新安装 git,但我仍然得到了损坏的对象。我正在使用运行 Ubuntu 的虚拟机,如果这会导致这样的事情,我不知道。我也尝试过切换到 Linux mint,我也解决了这个问题。

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

4

4 回答 4

3

外行方式(用 GITHUB 测试):

  1. 转到您的项目目录
  2. 显示隐藏文件
  3. 删除.git文件夹
  4. 将您的(远程)存储库克隆到不同的目录
  5. 显示隐藏文件
  6. 复制.git文件夹
  7. 将其粘贴到您的旧项目目录中
  8. 继续正常操作:git add, git commit,git push

奖励:
9.安然入睡

于 2021-05-22T17:40:18.763 回答
0

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

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

于 2015-04-26T19:00:24.993 回答
0

在我的情况下,我发现这个错误是由于我的本地存储库在 NFS 挂载的文件系统上引起的。如果存储库位于本地驱动器上,则它可以正常工作。我仍在寻找 NFS 问题是否有解决方法 - 也许 .gitignore 用于 .nfs* 文件。

于 2022-01-17T11:45:13.733 回答
0

运行 git prune 对我有用!您可能会丢失原点没有的旧本地/非活动分支

git prune origin
于 2019-10-30T09:55:05.303 回答