Git gc 失败并显示 : Error pack-objects died of signal 9

标签 git git-gc

我有一个大型存储库(Android 操作系统实例),并且我试图减小 .git 文件夹大小(当前为 76G),因为构建空间不足。

我尝试从 here 运行 git gc --prune=now --aggressive但它失败并出现以下错误:

git gc --prune=now --aggressive
Enumerating objects: 998206, done.
Counting objects: 100% (998206/998206), done.
Delta compression using up to 16 threads
error: pack-objects died of signal 98506)
fatal: failed to run repack

如果这有什么区别的话,该存储库有来自两个远程的分支。

如何避免/修复此错误?

谢谢!

编辑:我尝试在不使用 aggressive 选项的情况下运行 git gc --prune=now ,并且操作成功运行,将我的 .git 文件夹减少到 27GB。

最佳答案

信号 9 是 SIGKILL。这是一个无法捕获的信号,会导致进程立即终止。许多现代类 Unix 系统都使用此信号作为“OOM Killer”(内存不足 killer )的一部分,当您使用过多 RAM 和/或交换空间时,该信号就会启动。

解决方案包括:

  • 使用更少的内存;
  • 添加更多交换空间;
  • 购买更多内存。

更多详情,请参阅 this closely-related (though not identical) question .

关于Git gc 失败并显示 : Error pack-objects died of signal 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73995279/

相关文章:

GIT 服务器在 Ubuntu 上安装失败

Git gc 使用过多内存,无法完成

git - 如何处理 git gc fatal : bad object refs/remotes/origin/HEAD error?

git - git在执行操作时会做什么:git gc-git prune

git - `git gc` 和 `git repack -ad; git prune` 之间有什么区别吗?

git - SSHKit::Runner::ExecuteError:在主机 Net::SSH::AuthenticationFailed 上执行时出现异常:身份验证失败

git:两次提交之间的差异,仅适用于第三次提交中列出的文件?

Git push 不退出

git - 我应该在 Git 中存储什么?