Переход из одного репозитория git в другой с помощью командной строки

#git #github #directory

Вопрос:

Допустим, у меня есть два репозитория, с которыми я регулярно взаимодействую. Например, repo1 И. repo2 Допустим, я только что принял решение и внес изменения в repo1, но теперь мне нужно поработать в repo2.

За кулисами, как git понимает, что я больше не взаимодействую с repo1, а теперь с repo2? (Это так же просто, как перейти в каталог, в котором находится локальный филиал repo2?) Нужно ли мне использовать какой-то язык командной строки, чтобы сообщить git, что я переключаю внимание на repo2?

Ответ №1:

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

Вы можете выбрать работу автоматического обнаружения на основе другого каталога, используя -C флаг, который должен предшествовать имени команды (например, git -C DIR status ), и вы также можете явно указать каталоги, используя параметры командной строки или переменные среды. Они могут быть полезны, когда вы хотите управлять подмодулем или другим репозиторием, но не хотите изменять каталоги.

Однако большинство из них являются необычными ситуациями, и в большинстве случаев Git определяет репозиторий на основе текущего каталога. Поэтому переключить внимание на repo2 так же просто, как перейти в какой-нибудь каталог в repo2. В Unix это так же просто, как что-то вроде cd ~/checkouts/repo2 .