2013-09-01 67 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無法在那裏寫入數據。

在試圖推送之前,您可能會嘗試檢查您的主存儲庫權限。