git 错误 - 无法推送到打包对象死于信号 9



我在存储库中添加了一些文件,提交并尝试推送到 Github:

$ git add .  
$ git commit -m 'bla'  
$ git push origin master

当我尝试推送到 Github 时出现错误。

Counting objects: 84, done.  
Delta compression using up to 2 threads.  
error: pack-objects died of signal 9  
error: failed to push some refs to 'git@github.com:xxxxx/xxxxx.git'

在我两周前去度假之前,一切都很好。据我所知,在此期间没有任何变化。 配置文件似乎没问题。 git push -f 也生成与上述相同的错误。

试试这个:

git config --global pack.windowMemory "32m"
pack.windowMemory::
    The maximum size of memory that is consumed by each thread
    in linkgit:git-pack-objects[1] for pack window memory when
    no limit is given on the command line.  The value can be
    suffixed with "k", "m", or "g".  When left unconfigured (or
    set explicitly to 0), there will be no limit.

Git 重新打包将解压缩的对象组织成包,这些包是对象的集合,单独压缩,应用增量压缩,存储在单个文件中,并带有关联的索引文件。

    git repack -a -d -f --window=0
  • 答:将所有东西打包成一个包
  • D:删除任何新的冗余包
  • f:不要重复使用旧的增量,我想是为了降低内存需求
  • 窗口=0:停止与其他比较对象试图节省空间,我想也是为了降低内存需求

在一个具有精简 RAM 配置文件和包含许多文件的大型存储库的 FreeBSD 盒子上, 我开始收到此错误。 /var/log/messages文件包含如下错误:

pid 93208 (git), jid 0, uid 1001, was killed: out of swap space

我能够通过暂时添加更多的交换空间来解决此问题。

我很确定你有一个本地问题,这与GitHub无关。git 推送包括以下步骤:

  • 本地:对象的增量压缩
  • net:通过 SSH 将新的压缩对象写入远程存储库
  • 网络:通过 SSH 更新远程存储库中的引用

很明显,这是失败的第一步。您可能内存不足/交换?

就我而言,这是因为我想添加的文件数量超过了 100。如果这是您的问题,您可能希望在不同的提交中推送它们。

另一种解释是您要推送的文件太大。

请检查RAM使用情况,或为交换文件创建更多空间

有这个问题推送到Gitlab.

通过向我的.gitignore添加.*来修复它

即忽略所有文件/文件夹,例如 .git.开始

最新更新