Git 索引文件小于预期值
今天早上,我开始从git得到这个错误: 致命:索引文件小于预期值 致命:git状态--失败Git 索引文件小于预期值,git,Git,今天早上,我开始从git得到这个错误: 致命:索引文件小于预期值 致命:git状态--失败 知道发生了什么以及如何解决吗?索引文件已损坏,但很容易重新创建。把它拿走 rm .git/index 然后,您可以重新添加要暂存的文件。如果要保留本地更改,请使用以下命令: $ rm .git/index $ git reset HEAD . > Unstaged changes after reset: modified foo.txt modified bar.txt 对于那些在删
知道发生了什么以及如何解决吗?索引文件已损坏,但很容易重新创建。把它拿走
rm .git/index
然后,您可以重新添加要暂存的文件。如果要保留本地更改,请使用以下命令:
$ rm .git/index
$ git reset HEAD .
> Unstaged changes after reset:
modified foo.txt
modified bar.txt
对于那些在删除索引后仍有ISSE且无法重置的用户。如果您想保留您的更改,请执行以下操作(不是一个解决方案,而是一个难看的解决方法!)
我的案例如上所述,git把它的参考资料搞砸了
Git日志
显示“您的分支似乎已断开”,并且Git fsck
向我发出关于错误引用的警告。我想如果我可以修复它,但我会花很多时间去做,所以我选择了丑陋的解决方法。你试过这个吗?是的,我在发布之前试过。问题是我的子模块一直在破坏我的索引文件(不知道为什么)。@karellm你找到发生这种情况的原因了吗?不,老实说,我没有调查是什么原因造成的,它也停止了。提示:根据我的经验,这可能是由于NFS文件夹没有更新。如果您的repo位于NFS上,请稍等几分钟,然后再尝试更正问题。我是在从一台机器上提取数据,然后在另一台机器上检查状态后发生这种情况的,这两台机器都安装了相同的NFS。如上所述,由于与一个子模块的冲突,该子模块一次又一次地破坏了我的索引,所以无法工作。。。我删除了子模块,删除了索引并添加了全部。它终于奏效了。谢谢为什么会发生这种情况?在过去的两周里,我已经发生过两次这种情况,我看不出原因。这对我来说不起作用。在这个错误之前,我有一个基本上干净的工作副本。删除索引文件并运行git add.
后,它的行为就好像每个文件都是新的,需要提交。当有子模块时也不起作用。只需重置(答案下方)。如果发现在运行此操作后,我必须执行git还原--staged
,它修复了git认为所有内容都需要重新提交的问题。不知道为什么会发生这种情况?在过去的两周里,这种情况发生在我身上大约4-5次。这个答案在这里是最好的。此外,如果您使用git子模块,请注意:同时删除这些索引文件(它们位于.git/modules/src
)。这让我想知道为什么删除(主)索引文件后仍会发生错误。我猜这可能是由于标准原因、进程中途停止、磁盘空间不足等原因造成的。但在我的情况下,可能是我使用git文件夹的符号链接来创建用于构建svn外部的目录,虽然这很奇怪,因为这些回购协议上的唯一操作是只读的,用于硬重置构建文件夹。这对我很有帮助,谢谢。我的项目中有子模块;在克隆repo时,使用git clone--recurse submodules URL获取它们也很重要。