解决 Git 索引太小的错误

Resolving Errors With Git Index Too Small

我最近将托管我们代码库的开发服务器更新为更新版本的 Ubuntu (18.04)。作为过程的一部分,git 已升级到版本 2.23.0。部署代码的实际应用服务器需要能够从 git 存储库中检出最新的更改。当我尝试在这些服务器上执行 'git fetch' 时,我得到一长串错误,如下所示:

error: index file ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx is too small

我进行了一些挖掘,看看是否可以想出一个解决方案,但到目前为止,注意到已经奏效了。我尝试了此处列出的答案: git error: "index file is too small"git index-packgit repack -a -d 都没有解决问题。我什至尝试从应用程序服务器删除文件的本地副本并使用 git 克隆安装新文件。克隆本身抛出了一堆类似于之前的错误

remote: error: index file ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx is too small

在这一点上我没有想法。任何帮助将不胜感激。

编辑: du -h 的输出表明有足够的磁盘 space.

错误消息听起来像是文件损坏。如果您还没有 运行 磁盘 space,您可以删除索引文件并重新创建它:

git index-pack -v ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx

您可能还想 运行 使用 git-fsck 验证 GIT 数据库中对象的连接性和有效性 -- 远程和本地。

如果您的索引已损坏,您还可以尝试重置将创建新索引文件的分支:

  1. 为了安全起见,备份.git/index
  2. 删除索引文件.git/index
  3. 执行git reset

参考资料