2012-11-01 72 views
8

我向存儲庫中添加了兩個大文件(每個150MB),現在git pull總是掛起54%。我使用ping來檢查網絡,嘗試使用另一個,我做了一個git fsck等。沒有什麼幫助。如何調試:git pull在git pull期間掛起(allways爲54%)

  • 我該如何調試?

  • 有沒有辦法一次只取一個大文件?問題是,我的本地Git並不知道最後的提交= - (

+0

可能是值得考慮的。['混帳annex'(http://git-annex.branchable.com/)能夠有效地管理大文件的使用。有關更多詳細信息,請參閱http://stackoverflow.com/a/6635160/429758。 –

+0

謝謝!我絕對會爲此而努力。但即使在從遠程存儲庫中刪除這兩個文件後,我仍然無法拉出。對象的數量現在更大。然而git的凍結 –

+0

您可以嘗試更改內存大小限制在你的混帳配置(pack.packSizeLimit core.packedGitLimit例如) – Zermingore

回答

0

我想你所遇到的問題是你的克隆,中間每次掰

所以,與其從頭每次連連克隆一個回購協議,我會建議你,而不是做一個新創建的回購取回。

基本上,初始化一個空庫

cd repo_name && git init 

加入日e原始回購作爲遠程回購

git remote add origin url/to/repo 

現在做一個git fetch

這樣,即使您的克隆在中間休息,fetch也只會在下次運行時小心引入未提取的對象。

1

但即使從遠程存儲庫中刪除這兩個文件後,我仍然無法取出。

你用什麼方法「刪除這兩個文件」?

您需要將其從存儲庫歷史記錄中的所有提交中移除。

要做到這一點,例如參見:How to remove/delete a large file from commit history in Git repository?


要檢查您的git pull真的停滯或只是非常緩慢:檢查你的compouter和託管中央回購服務器之間的網絡流量。


如果您有其他的方式來獲得2個大文件:從(例如,將它們複製到你的本地庫從USB記憶棒......),你可以運行git add(不運行git commit)這些文件的本地存儲庫,然後git reset .將它們取消。

這應該將這些文件添加到本地回購庫中已知對象的列表中,git pull不需要再次下載它們。

0

增加Git的緩衝區大小:

混帳配置--global http.postBuffer 157286400

大小應設置爲解決這一問題的最低限度。