Я видел эту строку в сценарии, который я использую:
git config core.worktree ..
Я не уверен, что делает git worktree, но я совершенно не понимаю, зачем устанавливать для него значение ..
Любая подсказка? Спасибо
Я видел эту строку в сценарии, который я использую:
git config core.worktree ..
Я не уверен, что делает git worktree, но я совершенно не понимаю, зачем устанавливать для него значение ..
Любая подсказка? Спасибо
У Git есть две стратегии для разделения места, где находится папка репозитория (GIT_DIR
), и места, где находятся файлы, отслеживаемые этим репозиторием (GIT_WORK_TREE
, также называемое основным рабочим/рабочим деревом).
core.worktree
изменяет расположение основного рабочего дерева. В вашем случае от стандартного эквивалента .
до ..
, который является родительским каталогом каталога, содержащего папку репозитория. Использование относительных путей в core.worktree
вне GIT_DIR
— это то, что вы делаете в одиночестве в своей комнате, а не на публике.
Зачем им это делать? Отслеживать одни и те же файлы в нескольких репозиториях; у исходного разработчика, вероятно, было несколько репозиториев в подпапках этой родительской папки, и все они использовали ..
для своей конфигурации core.worktree
. Как упоминалось в предыдущем ответе, это может быть способ обмена библиотеками, но для этого есть лучшие стратегии.
Поскольку я упомянул об этом, вы можете взять любой репозиторий git и заменить папку репозитория .git
файлом .git
, содержащим gitdir: <some path>
, чтобы указать на новое место, которое будет действовать как папка репозитория. Важно отметить, что <some path>
содержит имя папки репозитория, и, таким образом, это способ изменить имя папки репозитория, чтобы оно не было .git
. При этом вы выполняете свои команды git в местоположении файла .git
, так как теперь он маскируется под папку репозитория.
Подавляющее большинство графических интерфейсов git неправильно поддерживают core.worktree
. Любой репозиторий, использующий этот параметр конфигурации, должен обрабатываться только с помощью команд терминала.
..
означает родительский каталог.
Я не уверен, спрашиваете ли вы о синтаксисе ..
или о том, почему скрипт использует родительский каталог.
А для git config core.worktree
см. https://git-scm.com/docs/git-worktree а>
Вы можете опубликовать сценарий, чтобы люди могли понять, почему используется родительский каталог.
Это может быть формой стратегии совместного использования библиотек.
Содержимое репозитория, который вы настраиваете, скорее всего, используется несколькими другими репозиториями через подмодули, но тот, кто написал этот скрипт, хочет ссылаться на них всех на одну и ту же рабочую копию локально (в отличие от каждого репо, имеющего свою собственную локальную копию).
Есть плюсы и минусы...
См.: Git: можно ли использовать одну и ту же рабочую копию подмодуля в нескольких проектах?