我最近将托管代码存储库的开发服务器更新为较新版本的 Ubuntu (18.04(。作为该过程的一部分,git 已升级到版本 2.23.0。部署代码的实际应用程序服务器需要能够从 git 存储库中签出最新更改。当我尝试在这些服务器上执行"git fetch"时,我会收到一长串错误,如下所示:
错误:索引文件 ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx is 太小
我做了一些挖掘,看看我是否可以想出一个解决方案,但到目前为止,注意到已经奏效了。我尝试了此处列出的答案:git 错误:"索引文件太小"。git index-pack
和git repack -a -d
都没有解决这个问题。我什至尝试从应用程序服务器中删除文件的本地副本并使用 git 克隆进行全新安装。克隆本身抛出了一堆类似于以前的错误
远程:错误:索引文件 ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx is 太小
在这一点上,我没有想法。任何帮助将不胜感激。
编辑:du -h
的输出表明有足够的磁盘空间。
错误消息听起来像文件损坏。如果磁盘空间未用完,则可以删除索引文件,然后使用以下命令重新创建它:
git index-pack -v ./objects/pack/._pack-5b58f700fea57ee6f8ff29514a376b945bb1c8a9.idx
您可能还想运行使用 git-fsck 来 验证 GIT 数据库中对象的连接性和有效性 - 远程和本地对象。
如果您的索引已损坏,您还可以尝试重置分支,这将创建一个新的索引文件:
- 为安全起见,备份
.git/index
. - 删除索引文件
.git/index
。 - 执行
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 命令添加"隐藏"文件,为什么?