linux - 解决 Git 索引太小的错误

标签 linux git ubuntu debian gitlab-omnibus

我最近将托管代码库的开发服务器更新为更新版本的 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-packgit 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 数据库中对象的连接性和有效性——无论是远程的还是本地的。

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

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

引用资料

关于linux - 解决 Git 索引太小的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58031397/

相关文章:

linux - 允许使用 iptables 进行重定向

linux - 我怎样才能在linux中创建DSN

git - TFS 服务 GitContinouslyDeploymentTemplate.12.xaml 无法加载参数

java - Ubuntu 服务器中出现 OutOfMemory 错误

linux - 缺少 inotify 事件(在 .git 目录中)

2 个分支的 Github 比较 View 不正确?

ubuntu - 这个错误是什么意思 : "maverick is not supported."

linux - 在 bash/sqlplus 中一个接一个地调用两个函数失败

python - python 后台进程(= rsyslog 进程的子进程)...仅在关闭时写入

linux - 如何在 Linux 上找到符合模式的行并将其删除?