解决 Git 索引太小的错误



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

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

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

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

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

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

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

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

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

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

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

引用

  • 该问题可能是 git 错误的重复:"索引文件太小">
  • 有关git index-pack的文档,请访问 https://git-scm.com/docs/git-index-pack
  • 修复损坏索引的一些注意事项:https://makandracards.com/makandra/5899-how-to-fix-a-corrupt-git-index
  • 致命:包文件名"服务器"不以".pack"结尾

将我的 git 存储库从 Mac OS 转移到另一个系统时遇到此错误。以"._"开头的文件是由tar命令生成的 Mac OS 元文件。所以看看这个问题以避免"._*"文件:mac os x 中的 tar 命令添加"隐藏"文件,为什么?

最新更新