2011-07-28 135 views
6

我們的一個git倉庫足夠大,git-clone需要花費大量的時間(超過幾分鐘)。 .git目錄是〜800M。克隆總是發生在通過ssh的100Mbps LAN上。即使通過ssh複製到本地主機也需要幾分鐘的時間。如何管理大型git存儲庫?

是的,我們將數據和二進制blob存儲在存儲庫中。

移動這些的缺點,有沒有另一種方法使其更快?

即使移動大文件我們是一個選項,我們怎麼能做到這一點沒有大的中斷重寫每個人的歷史?

+2

你壓縮了嗎?你的'.gitignore'設置足夠嗎?我從4.3gb回購到450mb這些考慮,它拯救了我的生命,哈哈 – Nic

+0

@melee可悲的是大多數已經被壓縮 –

+0

我很想成爲你的鞋子。我們的git回購最近已達到2GB左右。我們的主要服務器只有少數幾個國家,所以連接速度較慢,克隆需要大約30-45分鐘。我想說的是:如果你認爲你的情況很糟糕,總會有很多人更糟糕;)。 –

回答

0

我相當肯定你不能在不重寫歷史的情況下移動這些二進制文件。

根據二進制文件的不同(可能是一些預建的庫或任何其他文件),您可以爲開發人員提供一個腳本來運行下載它們的post-checkout。

0

千兆光纖... 沒有重寫歷史,你是相當有限的。

你可以嘗試一下git gc它可以清理它一點,但我不確定這是否克隆完成。

+1

如果他做了'git gc --ggressive'並推送,它會更新遠程?可能是新問題的基礎 – Nic

+1

前些日子我在想這個......我想我會寫一個問題。 – Andy

1

我面臨與〜1GB存儲庫相同的情況,需要通過DSL傳輸。我和那個被遺忘的運動鞋一起去了:把它放在閃存驅動器上,然後在我的車裏穿過城鎮。在任何情況下這都是不實際的,但你真的只需要爲最初的克隆做。之後,轉讓是相當合理的。

+0

不要忘記'git-bundle'功能(用於sneakernet和其他手動傳輸方法),因此您只需要在不同的回購站之間傳輸**新**位 –

相關問題