Я хотел бы спросить вас: действительно ли вам нужен общий доступ к репозиторию?
Как и 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 также, кажется, называется, что .