我們的一個git倉庫足夠大,git-clone需要花費大量的時間(超過幾分鐘)。 .git目錄是〜800M。克隆總是發生在通過ssh的100Mbps LAN上。即使通過ssh複製到本地主機也需要幾分鐘的時間。如何管理大型git存儲庫?
是的,我們將數據和二進制blob存儲在存儲庫中。
移動這些的缺點,有沒有另一種方法使其更快?
即使移動大文件我們是一個選項,我們怎麼能做到這一點沒有大的中斷重寫每個人的歷史?
我們的一個git倉庫足夠大,git-clone需要花費大量的時間(超過幾分鐘)。 .git目錄是〜800M。克隆總是發生在通過ssh的100Mbps LAN上。即使通過ssh複製到本地主機也需要幾分鐘的時間。如何管理大型git存儲庫?
是的,我們將數據和二進制blob存儲在存儲庫中。
移動這些的缺點,有沒有另一種方法使其更快?
即使移動大文件我們是一個選項,我們怎麼能做到這一點沒有大的中斷重寫每個人的歷史?
我相當肯定你不能在不重寫歷史的情況下移動這些二進制文件。
根據二進制文件的不同(可能是一些預建的庫或任何其他文件),您可以爲開發人員提供一個腳本來運行下載它們的post-checkout。
即使移動大文件我們是一個選項,我們怎麼能做到這一點 沒有大的中斷重寫每個人的歷史?
檢查這個答案: Will git-rm --cached delete another user's working tree files when they pull
這項措施,以增加圖案.gitignore
在一起,應該可以幫助你保持這些大文件了。
我面臨與〜1GB存儲庫相同的情況,需要通過DSL傳輸。我和那個被遺忘的運動鞋一起去了:把它放在閃存驅動器上,然後在我的車裏穿過城鎮。在任何情況下這都是不實際的,但你真的只需要爲最初的克隆做。之後,轉讓是相當合理的。
不要忘記'git-bundle'功能(用於sneakernet和其他手動傳輸方法),因此您只需要在不同的回購站之間傳輸**新**位 –
你壓縮了嗎?你的'.gitignore'設置足夠嗎?我從4.3gb回購到450mb這些考慮,它拯救了我的生命,哈哈 – Nic
@melee可悲的是大多數已經被壓縮 –
我很想成爲你的鞋子。我們的git回購最近已達到2GB左右。我們的主要服務器只有少數幾個國家,所以連接速度較慢,克隆需要大約30-45分鐘。我想說的是:如果你認爲你的情況很糟糕,總會有很多人更糟糕;)。 –