2014-02-09 19 views
3

我正在做一些有潛在危險的歷史重寫,所以我決定用--mirror選項做一個克隆。我爲快速克隆操作感到驚訝。而且,不知何故,最終的回購不到1MB,而原始回購超過300MB(在git gc --aggressive之後)。這怎麼可能? git clone --mirror使用某種魔法?或者當我克隆時丟失數據--mirrorgit鏡像克隆如此快速和小巧?

我用du -s來查看它佔用了多少磁盤空間。

回答

3

的關鍵不在--mirror選項,但在--local一個,這是在同一個文件系統的克隆默認:

--local [...] git的/對象/目錄下的文件硬連接 儘可能節省空間。

所以這兩個存儲庫實際上共享磁盤空間。

您可以使用--no-hardlinks克隆並檢查生成的大小。

+0

@Memming:不,硬鏈接不是_copy-on-write_。但是這不應該影響git操作。 Git足夠聰明,因此在存儲庫中沒有任何操作(除了文件損壞),這會影響克隆的操作。請注意,這對於使用'--local'克隆的存儲庫是正確的,但不能用'--shared'。 – rodrigo