После прочтения документации я до сих пор не понимаю, что
различия между --shared
и --reference <repo>
. Они кажутся похожими.
-
Каковы различия между
--shared
и--reference <repo>
параметры -
Могут ли они использоваться для экономии места на диске при создании нескольких локальных клонов другой локальный клон?
-
Может ли каждый локальный клон иметь другую ветвь?
Примечание: Я знаю, что я могу использовать несколько мелких клонов с усеченными
истории, используя git clone --depth <depth>
, но каждый клон все еще должен
дублируйте хотя бы некоторую историю, чтобы сделать это, поэтому я был
думая, что, возможно, это не самый оптимальный способ сэкономить место на диске (хотя это
лучше ничего).
Фон
Иногда мне нравится иметь более одной проверки моей рабочей копии в репозиторий, поэтому я создаю несколько клонов, где каждый клон имеет собственную проверку.
Однако мне не нужна вся история с каждым клоном, просто обновленные версии моих ветвей, поэтому я мог бы сэкономить много дисков чтобы каждый клон использовал теги, объекты фиксации, дерева и blob из оригинальный локальный клон (например, через символические ссылки для чего-то).
git clone
документация
Я проверил документацию git clone
, чтобы узнать, есть ли что-нибудь
можно использовать.
--shared
Я видел, что есть опция --shared
:
Когда репозиторий клонируется на локальном компьютере, вместо использования жесткого ссылки, автоматически настроить
.git/objects/info/alternates
для совместного использования объектов с исходным хранилищем. Результирующий репозиторий начинается без каких-либо объекта.
Похоже, что может быть полезным для того, чтобы помочь мне сэкономить место на диске с несколькими клонами, которые имеют разные проверки, поскольку каждый клон делится объекты с исходным локальным клоном.
--reference <repository>
Затем я также увидел параметр --reference <repository>
:
Если ссылочный репозиторий находится на локальном компьютере, автоматически настройте
.git/objects/info/alternates
для получения объектов из ссылки репозиторий. Использование уже существующего репозитория в качестве альтернативы потребует меньше объектов, подлежащих копированию из клонирования клонирования, сокращение сети и локальные затраты на хранение.ПРИМЕЧАНИЕ: см. ПРИМЕЧАНИЕ для параметра
--shared
.
Это говорит о том, что это сократит локальные расходы на хранение, поэтому это может быть полезно хорошо.