我想問你的是:你真的需要共享存儲庫嗎?
與Mercurial一樣,git在製作本地克隆時會在存儲庫之間創建硬鏈接,從而僅佔用很少的磁盤空間。例如: -
git clone http://example.org/repo repo
git clone repo repo-copy1
git clone repo repo-copy2
在repo-copy1
和repo-copy2
庫大多數文件的硬鏈接repo
,並且不會佔用額外的磁盤空間。只有工作副本中的文件纔是真正的副本。
可以確認這種行爲是這樣的:
$ df -l
Filesystem 512-blocks Used Available Capacity Mounted on
/dev/disk0s2 976101344 217966872 757622472 23% /
$ git clone --no-checkout repo repo-copy
Cloning into repo-copy...
done.
$ du -cs repo-copy/.git
63528 .
63528 total
$ df -l
Filesystem 512-blocks Used Available Capacity Mounted on
/dev/disk0s2 976101344 217967536 757621808 23% /
正如你可以看到,克隆65880塊庫後(每512個字節),文件系統上的塊數下降了僅664塊。
如果從遠程服務器克隆(子)存儲庫,則可能必須手動創建到其他本地克隆的硬鏈接;對於Mercurial,您可以使用relink
擴展名;該git相當於也似乎是called that。
澄清:共享擴展共享多個工作副本之間的單個存儲庫。 –
@Laurens Holst:這正是我需要的。 –