2009-10-19 118 views
5

我試圖運行git克隆和我收到以下錯誤:混帳克隆內存分配錯誤

fatal: Out of memory, malloc failed 
fatal: index-pack died with error code 128 
fetch-pack from '[email protected]:git' failed. 

我是能夠成功地做我的本地機器上的一個克隆,但是當我嘗試它的失敗克隆到另一臺服務器。

對於整個git的東西還是有點新的,所以任何幫助都將不勝感激。 :)

+0

我認爲致命的事情發生在服務器上;服務器有多少內存?回購有多大? 'git count-objects'是什麼意思? – 2009-10-19 19:10:16

+0

當你說「克隆**到另一臺服務器」時,你的意思是什麼? – innaM 2009-10-19 19:38:52

回答

5

您的存儲庫中是否有大文件(例如日誌文件)?
顯然,您的存儲庫太大而無法在硬盤上檢索。

有兩件事情可以做:

  • 檢查大文件,如果他們沒有用的(不僅是承諾,但也modifying your history刪除他們,如果你仍然有你的大文件。我們的資料庫,也不會小。
  • 做一個「git gc」,它會自動清理未使用的文件和壓縮存儲庫。
+0

git爲每個克隆創建一個新包,包含克隆人的相關對象;所以,我不認爲git gc會有所幫助。 – 2009-10-19 19:07:13

+0

是的,我們忽略了一個似乎導致問題的大文件(在這個例子中是一個zip文件)。關於修改歷史的鏈接是一個很大的幫助。感謝那。 – nevan 2009-10-21 10:05:34

+0

你如何在遠程分支上執行此操作? – Paul 2010-09-23 12:36:50

1

如果git遠程計算機上的失敗,因爲內存的限制你可能還會嘗試使用rsyncscp將存儲庫複製到本地計算機,並從此處繼續進行克隆。

0

您可以使用--depth -1運行git clone命令。這隻會獲取最後一次提交,因此涉及歷史記錄(git log,blame或甚至推/拉)的操作可能無法正常工作。但是,它需要更少的內存使用量,磁盤空間和網絡傳輸。

的限制有描述:Why can't I push from a shallow clone?