linux - 解决 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
表明有足够的磁盘空间。
解决方案
错误消息听起来像文件损坏。如果您没有用完磁盘空间,您可以删除索引文件并使用以下命令重新创建它:
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”结尾
推荐阅读
- sql - 如何在选择中使用存储过程?
- twitter - 创建 Twitter 聊天机器人
- c# - 将同一帖子中的 StringContent 和 StreamContent 发送到服务器
- java - JavaRDD 等价于 GROUP BY
- java - 为什么 if (variable1 % variable2 == 0) 效率低下?
- sql - 将 SQL 脚本转换为 Access
- opc-ua - 客户端无法写入外部服务器的节点
- udp - 用于 gen cam / GigE 视觉相机发现和通信的防火墙配置
- php - laravel 如何用外键创建模型工厂
- nginx - 为 sftp 创建一个支持 nginx 的共享文件夹