我最近将托管我们代码仓库的开发服务器更新到了较新版本的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
的输出表明有足够的磁盘空间。
答案 0 :(得分:3)
错误消息听起来像文件损坏。如果尚未用完磁盘空间,则可以删除索引文件并使用以下命令重新创建它:
git index-pack -v ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx
您可能还想使用git-fsck运行 验证GIT数据库中对象的连接性和有效性-既是远程又是本地。
如果索引已损坏,您也可以尝试重置分支,这将创建一个新的索引文件:
.git/index
。.git/index
。git reset
git index-pack
上的文档可以在https://git-scm.com/docs/git-index-pack上找到