Какие команды рабочего дерева git следует использовать, чтобы два локальных каталога совместно использовали один и тот же удаленный

В Mercurial, когда у меня есть извлеченный репозиторий в моем локальном каталоге "C:\my-projects\my-old-hg-repo-checkout" с включенным расширением "hg share", команда hg share C:\my-projects\my-old-hg-repo-checkout C:\my-projects\my-new-hg-repo-checkout создаст новый локальный каталог, который «совместно использует тот же удаленный» (т. е. если я вытащу удаленные изменения в одном каталоге, они будут видны в другом).

Как именно я могу сделать то же самое с моим локальным извлечением из каталога git «C:\my-projects\my-old-git-repo-checkout», которое я хочу продублировать в «C:\my- Projects\my-new-git-repo-checkout» (при этом гарантируя, что они «совместно используют один и тот же удаленный доступ», т. е. удаление удаленных изменений из одного каталога сделает их видимыми в другом)?


person wip    schedule 23.01.2020    source источник
comment
Является ли тот же удаленный ресурс точным описанием того, что делает hg share? Он разделяет ЛОКАЛЬНУЮ внутреннюю базу данных данных HG; синхронизируется ли он также с одним и тем же удаленным клоном по умолчанию при push/pull, кажется другой проблемой.   -  person StayOnTarget    schedule 23.01.2020


Ответы (1)


Вы хотите использовать команду git worktree для создания дополнительных рабочих деревьев для вашего локального репозитория git:

git clone <url of remote repo>
cd <directory>
git worktree add <path-to-new-directory> <branch_name>

Теперь у вас есть два рабочих дерева для репозитория git, каждое из которых находится в разных каталогах. Вы можете добавить столько рабочих деревьев, сколько хотите, с помощью дополнительных git worktree add команд. Обратите внимание, что у двух рабочих деревьев не может быть извлечена одна и та же ветвь.

git fetch обновляет локальное репо с удаленного, и поскольку оба рабочих дерева подключены к одному и тому же локальному репо, у вас будет обновленная информация в обоих рабочих деревьях.

Документацию см. на https://git-scm.com/docs/git-worktree. по команде git worktree.

person David Sugar    schedule 24.01.2020