2013-09-01 42 views
14

我在将本地文件夹推送到GitHub上的远程存储库时遇到问题。无法推送到GitHub错误:包对象因信号而死13

后,我把它到达96%左右,然后显示这个..

Counting objects: 4145, done. 
Delta compression using up to 2 threads. 
Connection to github.com closed by remote host. 
fatal: The remote end hung up unexpectedly 
Compressing objects: 98% (3919/3969) 

那么最后的2%,完成后是显示这个错误...

Compressing objects: 100% (3963/3963), done. 
error: pack-objects died of signal 13 
error: failed to push some refs to '[email protected]:example/example.git' 

不确定是什么意思。

回答

11

这可能是由于新的GitHub limits on file sizes引起的,或者可能由于大量数据(如2011年的其他SO问题:Alternative way to do an initial push of a large repo)导致包装过程崩溃,甚至可以报告这些特定限制。

几个星期前,在一位同事的Mac OS X机器上,我看到一个类似的不透明错误消息,当推(tho'只通过HTTPS - SSH给出了良好的错误消息) - 但试图重现这一点,大文件到我自己的Mac上的GitHub,我得到了两个连接协议(“远程:错误:文件大是976.56 MB,这超过了GitHub的文件大小限制为100 MB”)的预期信息错误消息。我的同事可能安装了旧版Git,无法正确报告错误。

如果你决定你需要从你的提交历史中删除大文件(因为它是你会得到他们推到GitHub上的唯一途径),我可以推荐The BFG

$ java -jar bfg.jar --strip-blobs-bigger-than 50M my-repo.git 

全面披露:我是BFG Repo-Cleaner的作者。

+0

经过更多的调查,这绝对是与文件大小有关。这很奇怪,因为GitHub说你会得到适当的错误信息与大文件https://help.github.com/articles/working-with-large-files –

5

简单的解决方案是增加HTTP后缓冲区大小以允许更大的块被推送到远程回购。要做到这一点,只需键入:

git config http.postBuffer 52428800 

该数字以字节为单位,所以在这种情况下,我已将它设置为50MB。默认值是1MB。

+2

没有为我工作 – Taysky

+0

为我工作。正在尝试将一些GIF推送到GitHub,而我无法。现在我能。谢谢。 – Lukas

+2

此修补程序仅适用于通过http(s)的git/GitHub连接。 OP的访问权限是通过ssh。 – javabrett

1

如果您无法启动进程,也可能意味着您的主服务器存储库的权限是错误的。我刚刚遇到了这个问题,并且我的主存储库上有root.root权限,所以我的用户git无法在那里写入数据。

在试图推送之前,您可能会尝试检查您的主存储库权限。