92

今天早上,我开始从 git 收到这个错误:

致命:索引文件小于预期

致命:git status --porcelain 失败

知道发生了什么以及如何解决它吗?

4

3 回答 3

129

索引文件已损坏,但很容易重新创建。只需删除它...

rm .git/index

然后您可以重新添加您尝试暂存的文件。

于 2012-04-09T20:57:43.297 回答
102

If you want to keep local changes, use the following:

$ rm .git/index
$ git reset HEAD .

> Unstaged changes after reset:
  modified foo.txt
  modified bar.txt
于 2013-01-30T00:28:39.413 回答
4

对于那些即使在删除索引后也有问题并且无法重置的人。如果您想保留更改,请执行以下操作(不是解决方案,而是丑陋的解决方法!)。

  1. 备份你的文件,我要说的应该可以,但以防万一。
  2. 删除 .git 文件夹
  3. 克隆你的存储库(不管在哪里)我是在当前目录中完成的
  4. 将克隆的 .git 目录中创建的复制到您的当前目录中
  5. 删除克隆的目录 6. 可选,如果您再次使用分支签出到它
  6. Git 状态现在应该按预期跟踪更改,并且您的所有 git 命令都应该工作

我的情况如上所述,git 弄乱了它的引用......Git log显示“你的分支似乎被破坏了”,并git fsck警告我有关错误引用的警告。想我是否可以修复它,但我会花很多时间去做,所以我选择了丑陋的解决方法。

于 2020-03-26T04:50:52.443 回答