Перейти к содержимому

git remote

Определение

Команда git remote предназначена для создания, просмотра и удаления подключений к другим репозиториям. Удаленные подключения действуют как закладки на другие репозитории, предоставляя удобные имена для ссылки на URL-адреса, которые в противном случае было бы неудобно использовать.

На диаграмме ниже показаны два удаленных подключения: одно к центральному репозиторию и одно к репозиторию другого разработчика. Вы можете поделиться именем удаленного подключения с другим разработчиком, позволив ему использовать его в качестве сокращения в других командах Git. В результате вам не придется ссылаться на подключения по их полным URL-адресам.

git remote

Создание и редактирование конфигураций git remote

Команда git remote также используется для редактирования файла ./.git/config репозитория. Вы можете сделать это, выполнив следующие команды:

  1. Используйте приведенную ниже команду для добавления нового удаленного подключения к удаленному репозиторию. Затем вы можете использовать <name> в качестве удобного сокращения для <url> в других командах Git.

git remote add

bash
git remote add <name> <url>
  1. Выполните следующую команду, чтобы удалить подключение к удаленному репозиторию, которое называется <name>.

git remote rm

bash
git remote rm <name>
  1. Запустите приведенную ниже команду для переименования удаленного подключения:

git remote rename

bash
git remote rename <old> <new>
  1. Используйте приведенную ниже команду для изменения URL-адреса существующего удаленного подключения:

git remote set-url

bash
git remote set-url <name> <new-url>

Вы можете достичь того же результата, отредактировав файл ./.git/config напрямую с помощью текстового редактора.

Удаленный репозиторий origin

Выполнение команды git clone автоматически создает удаленное подключение с именем origin, указывающее на клонированный репозиторий. Локальная копия позволяет легко получать изменения из удаленного репозитория или публиковать локальные коммиты. Именно поэтому центральный репозиторий во многих проектах называется origin.

URL-адреса репозиториев

Существует множество способов обращения к удаленному репозиторию, но двумя самыми простыми считаются использование протоколов HTTPS и SSH. URL-адреса HTTPS обычно используются для доступа только для чтения или в сочетании с помощниками учетных данных или персональными токенами доступа для аутентификации.

Формат URL-адреса HTTPS

bash
http://host/path/to/repo.git

Используйте SSH для доступа на чтение и запись. Вам потребуется действительная учетная запись SSH. Обратите внимание, что требования к доступу зависят от прав репозитория; публичные репозитории позволяют доступ без аутентификации, в то время как приватные требуют аутентификации. Современные безопасные решения стороннего хостинга, например Bitbucket.com, могут предоставлять такие URL-адреса:

Формат URL-адреса SSH

bash
ssh://user@host/path/to/repo.git

Вы также можете использовать широко поддерживаемый синтаксис, похожий на SCP:

bash
user@host:path/to/repo.git

Подкоманды git remote

Команда git remote имеет собственные подкоманды. Мы рассмотрим их ниже.

git remote add <name> <url>

Добавляет запись в файл ./.git/config для удаленного подключения с именем <name>, указывающего на <url>. Принимает опцию -f, которая сразу же выполняет git fetch <name> после создания записи об удаленном подключении. Другой опцией, принимаемой этой подкомандой, является --tags, которая сразу же выполнит git fetch <name> и импортирует все метки из удаленного репозитория.

bash
git remote add <name> <url>

git remote rename <old> <new>

Обновляет ./.git/config, переименовывая <old> в <new>. Все настройки конфигурации и ветки для удаленного подключения обновляются соответствующим образом.

bash
git remote rename <old> <new>

git remote remove или rm

Удаляет удаленное подключение с именем <name> из ./.git/config. Все связанные настройки конфигурации и ветки удаляются.

bash
git remote rm <name>

git remote set-url <name> <new-url>

Изменяет URL-адрес существующей записи об удаленном подключении в ./.git/config.

bash
git remote set-url <name> <new-url>

git remote get-url <name>

Выводит URL-адреса для записи об удаленном подключении. Эта подкоманда принимает опции --push и --all.

bash
git remote get-url <name>

git remote show <name>

Выводит подробную информацию об удаленном подключении <name>.

bash
git remote show <name>

git remote prune <name>

Удаляет удаленные отслеживаемые ветки для <name>, которые больше не существуют в удаленном репозитории. Эта подкоманда принимает опцию --dry-run, которая выводит список веток, которые будут обрезаны, но фактически не обрезает их.

bash
git remote prune <name>

Примеры git remote

Подключение к репозиториям других разработчиков позволяет сотрудничать вне центрального репозитория. Например, если коллега поддерживает общедоступный репозиторий по адресу dev.example.com/tom.git, вы можете добавить его следующим образом:

git remote add <name> <url>

bash
git remote add tom http://dev.example.com/tom.git

Отображение ваших удаленных подключений

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

команда git remote

bash
git remote
origin
upstream
other_repo

Вы можете вызвать команду git remote с опцией -v, которая выведет имена репозиториев, добавленных в закладки, вместе с URL-адресом соответствующего репозитория.

git remote -v

bash
git remote -v
origin      [email protected]:origin_user/reponame.git (fetch)
origin      [email protected]:origin_user/reponame.git (push)
upstream    https://example.com/upstream_user/reponame.git (fetch)
upstream    https://example.com/upstream_user/reponame.git (push)
other_repo  https://example.com/other_repo/reponame.git (fetch)
other_repo  https://example.com/other_repo/reponame.git (push)

Добавление удаленных репозиториев

Выполнение git remote add создает новую запись о подключении в ./.git/config. Затем <name> служит сокращением для <url> в других командах Git.

пример git remote add

bash
git remote add fake_test https://example.com/upstream_user/reponame.git

Проверка удаленного подключения

Добавление подкоманды show предоставляет подробный вывод конфигурации, включая подключенные ветки и конечные точки для fetch/push.

git remote show

bash
git remote show upstream
* remote upstream
Fetch URL: https://example.com/upstream_user/reponame.git
Push URL: https://example.com/upstream_user/reponame.git
HEAD branch: master
Remote branches:
master tracked
 simd-deprecated tracked
 tutorial tracked
Local ref configured for 'git push':
 master pushes to master (fast-forwardable)

Получение данных и обновление из удаленных репозиториев Git

После настройки удаленного подключения его имя можно использовать в качестве аргумента для других команд Git для установления связи с удаленным репозиторием. Вы можете использовать команды git fetch и git pull для чтения данных из удаленного репозитория.

Отправка данных в удаленные репозитории Git

Команда git push записывает данные в удаленный репозиторий.

git push <remote-name> <branch-name>

bash
git push <remote-name> <branch-name>

Практика

Какие утверждения о команде `git remote` верны согласно руководству W3Docs по Git?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.