索引文件小于预期

kar*_*llm 68 git

今天早上,我开始从git获取此错误:

致命:索引文件小于预期

致命:git状态 - 瓷器失败

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

mea*_*gar 89

索引文件已损坏,但很容易重新创建.只需删除它,然后重新添加工作目录中的文件:

rm .git/index
Run Code Online (Sandbox Code Playgroud)

  • 这不适合我.在此错误之前,我有一个非常干净的工作副本.删除索引文件并运行`git add .`后,它表现得好像每个文件都是新的并且需要提交. (4认同)
  • 为什么会发生这种情况?我在过去两周内发生了两次这种情况,但我找不到原因。 (3认同)
  • 如果发现运行此命令后我必须执行“git Restore --staged”,它解决了 git 认为所有内容都需要重新提交的问题 (2认同)

小智 75

如果要保留本地更改,请使用以下命令:

$ rm .git/index
$ git reset HEAD .

> Unstaged changes after reset:
  modified foo.txt
  modified bar.txt
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

我的情况如上所述,git 弄乱了它的引用...Git log显示“你的分支似乎已损坏”,并向git fsck我发出有关错误引用的警告。我想我是否可以解决这个问题,但我会花很多时间来做这件事,所以我选择了丑陋的解决方法。