我最近将托管代码库的开发服务器更新为更新版本的 Ubuntu (18.04)。作为过程的一部分,git 已升级到版本 2.23.0。部署代码的实际应用服务器需要能够从 git 存储库中 check out 最新的更改。当我尝试在这些服务器上执行“git fetch”时,我得到一长串如下所示的错误:
error: index file ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx is too small
我进行了一些深入研究,看看是否可以想出一个解决方案,但到目前为止,我已经注意到了。我尝试了此处列出的答案:git error: "index file is too small" .
git index-pack
和 git repack -a -d
都没有解决这个问题。我什至尝试从应用程序服务器删除文件的本地副本并使用 git clone 安装新文件。克隆本身抛出一堆类似于之前的错误
remote: error: index file ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx is too small
在这一点上我没有想法。任何帮助将不胜感激。
编辑 du -h
的输出表明有足够的磁盘空间。
最佳答案
错误消息听起来像是文件损坏。如果您没有用完磁盘空间,您可以删除索引文件并重新创建它:
git index-pack -v ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx
您可能还想运行 use git-fsck到 验证 GIT 数据库中对象的连接性和有效性——无论是远程的还是本地的。
如果您的索引已损坏,您还可以尝试重置将创建新索引文件的分支:
- 为了安全起见,备份
.git/index
。 - 删除索引文件
.git/index
。 - 执行
git reset
引用资料
- 此问题可能与 git error: "index file is too small" 重复
- 关于
git index-pack
的文档可以在 https://git-scm.com/docs/git-index-pack 找到 - 修复损坏索引的一些注意事项:https://makandracards.com/makandra/5899-how-to-fix-a-corrupt-git-index
- fatal: packfile name 'server' does not end with '.pack'
关于linux - 解决 Git 索引太小的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58031397/