что означает git config core.worktree?

Я видел эту строку в сценарии, который я использую:

git config core.worktree ..

Я не уверен, что делает git worktree, но я совершенно не понимаю, зачем устанавливать для него значение ..

Любая подсказка? Спасибо


person flod    schedule 10.10.2018    source источник
comment
Возможный дубликат Для чего мне использовать git-worktree?   -  person Gufran Hasan    schedule 10.10.2018
comment
stackoverflow.com/search?q=%5Bgit%5D+%22core.worktree%22   -  person phd    schedule 10.10.2018
comment
git-scm.com/docs/git-config#git-config- основное дерево   -  person phd    schedule 10.10.2018


Ответы (3)


У 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. Любой репозиторий, использующий этот параметр конфигурации, должен обрабатываться только с помощью команд терминала.

person Isaac Brown    schedule 12.05.2021

.. означает родительский каталог.

Я не уверен, спрашиваете ли вы о синтаксисе .. или о том, почему скрипт использует родительский каталог.

А для git config core.worktree см. https://git-scm.com/docs/git-worktree

Вы можете опубликовать сценарий, чтобы люди могли понять, почему используется родительский каталог.

person FarisHijazi    schedule 28.10.2019

Это может быть формой стратегии совместного использования библиотек.

Содержимое репозитория, который вы настраиваете, скорее всего, используется несколькими другими репозиториями через подмодули, но тот, кто написал этот скрипт, хочет ссылаться на них всех на одну и ту же рабочую копию локально (в отличие от каждого репо, имеющего свою собственную локальную копию).

Есть плюсы и минусы...
См.: Git: можно ли использовать одну и ту же рабочую копию подмодуля в нескольких проектах?

person AnorZaken    schedule 12.11.2019