首页 > 解决方案 > 解决 Git 索引太小的错误

问题描述

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

错误:索引文件 ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx 太小

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

远程:错误:索引文件 ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx 太小

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

编辑:的输出du -h表明有足够的磁盘空间。

标签: linuxgitubuntudebiangitlab-omnibus

解决方案


错误消息听起来像文件损坏。如果您没有用完磁盘空间,您可以删除索引文件并使用以下命令重新创建它:

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

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

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

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

参考


推荐阅读