为什么我经常收到 Git fatal: index file smaller than expected 错误?

Why do I get a Git fatal: index file smaller than expected error regularly?

我在虚拟机上使用 Git 时遇到了一个非常令人沮丧的问题。在我的 /var/www/ 目录中,我有一些项目具有不同的 Git 回购协议,有时,现在我经常重新进入项目目录并执行 git status(或任何other git 命令)并得到如下所示的错误。

我已经阅读了如何暂时解决此问题,但我找不到任何关于为什么会发生这种情况以及如何阻止它发生的信息。我是 运行 Vagrant 虚拟机,其 CentOS 和 Git 版本如下所示。

这可能是我的 VM 关闭方式的问题吗?

[vagrant@localhost /var/www/crmpicco]# git status
fatal: index file smaller than expected

[vagrant@localhost /var/www/crmpicco]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)

[vagrant@localhost /var/www/crmpicco]# git --version
git version 1.8.3.1

我还发现,如果我执行 git fetch origin,我会为源上的每个更新分支获得以下信息:

error: unable to resolve reference refs/remotes/origin/master: No such file or directory
 ! [new branch]      master     -> origin/master  (unable to update local ref)

我不确定这是否是 "fixed" 的全部原因,但是通过在PS1 变量并使用 sudo shutdown -h now 正常关闭虚拟机而不是仅仅关闭虚拟机 window 它似乎已经解决了一个星期或更长时间的问题。