Spec-Zone.ru › Git

git-remote

Имя

git-remote — управление набором отслеживаемых репозиториев

Краткое описание

git remote [-v | --verbose]
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL>
git remote rename [--[no-]progress] <old> <new>
git remote remove <name>
git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
git remote set-branches [--add] <name> <branch>…​
git remote get-url [--push] [--all] <name>
git remote set-url [--push] <name> <newurl> [<oldurl>]
git remote set-url --add [--push] <name> <newurl>
git remote set-url --delete [--push] <name> <URL>
git remote [-v | --verbose] show [-n] <name>…​
git remote prune [-n | --dry-run] <name>…​
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…​]

Описание

Управление набором репозиториев («удалённых»), ветки которых вы отслеживаете.

Параметры

-v
--verbose

Выводить больше подробностей и показывать URL удалённого репозитория после его имени. Для promisor-репозиториев также показывать настроенные фильтры (например, blob:none). ПРИМЕЧАНИЕ: этот параметр должен указываться между remote и подкомандой.

Команды

Если аргументы не указаны, выводится список существующих удалённых репозиториев. Для выполнения операций с ними доступны несколько подкоманд.

add

Добавить удалённый репозиторий с именем <name> для репозитория, расположенного по адресу <URL>. Затем команду git fetch <name> можно использовать для создания и обновления веток отслеживания удалённого репозитория <name>/<branch>.

С параметром -f сразу после настройки информации об удалённом репозитории выполняется команда git fetch <name>.

С параметром --tags команда git fetch <name> импортирует все теги из удалённого репозитория.

С параметром --no-tags команда git fetch <name> не импортирует теги из удалённого репозитория.

По умолчанию импортируются только теги веток, полученных из удалённого репозитория (см. git-fetch[1]).

С параметром -t <branch> вместо стандартного шаблона refspec, отслеживающего все ветки удалённого репозитория в пространстве имён refs/remotes/<name>/, создаётся refspec для отслеживания только <branch>. Можно указать несколько параметров -t <branch>, чтобы отслеживать несколько веток, не получая все ветки.

С параметром -m <master> настраивается символическая ссылка refs/remotes/<name>/HEAD, указывающая на ветку <master> удалённого репозитория. См. также команду set-head.

При создании зеркала для получения данных с помощью параметра --mirror=fetch ссылки не сохраняются в пространстве имён refs/remotes/; вместо этого всё содержимое refs/ удалённого репозитория напрямую зеркально копируется в refs/ локального репозитория. Этот параметр имеет смысл только для репозиториев без рабочего дерева, поскольку операция получения данных перезапишет все локальные коммиты.

При создании зеркала для отправки с помощью параметра --mirror=push команда git push всегда будет работать так, как если бы был указан параметр --mirror.

rename

Переименовать удалённый репозиторий <old> в <new>. Все ветки отслеживания удалённого репозитория и настройки его конфигурации обновляются.

Если <old> и <new> совпадают, а <old> является файлом в $GIT_DIR/remotes или $GIT_DIR/branches, удалённый репозиторий преобразуется в формат файла конфигурации.

remove
rm

Удалить удалённый репозиторий <name>. Все ветки отслеживания удалённого репозитория и настройки его конфигурации удаляются.

set-head

Задать или удалить ветку по умолчанию (то есть цель символической ссылки refs/remotes/<name>/HEAD) для указанного удалённого репозитория. Ветка по умолчанию для удалённого репозитория не обязательна, но позволяет указывать имя удалённого репозитория вместо конкретной ветки. Например, если веткой по умолчанию для origin задана master, то origin можно указывать везде, где обычно указывается origin/master.

С параметром -d или --delete символическая ссылка refs/remotes/<name>/HEAD удаляется.

С параметром -a или --auto у удалённого репозитория запрашивается его HEAD, после чего символическая ссылка refs/remotes/<name>/HEAD указывает на ту же ветку. Например, если удалённый репозиторий HEAD указывает на next, команда git remote set-head origin -a установит для символической ссылки refs/remotes/origin/HEAD значение refs/remotes/origin/next. Это сработает только в том случае, если refs/remotes/origin/next уже существует; в противном случае её сначала нужно получить.

Используйте <branch>, чтобы явно задать символическую ссылку refs/remotes/<name>/HEAD. Например, команда git remote set-head origin master установит для символической ссылки refs/remotes/origin/HEAD значение refs/remotes/origin/master. Это сработает только в том случае, если refs/remotes/origin/master уже существует; в противном случае её сначала нужно получить.

set-branches

Изменить список веток, отслеживаемых указанным удалённым репозиторием. Это можно использовать, чтобы после первоначальной настройки удалённого репозитория отслеживать только часть доступных удалённых веток.

Указанные ветки интерпретируются так, как если бы они были заданы параметром -t в командной строке команды git remote add.

С параметром --add указанные ветки добавляются к списку отслеживаемых веток, а не заменяют его.

get-url

Получить URL-адреса удалённого репозитория. Здесь разворачиваются настройки insteadOf и pushInsteadOf. По умолчанию выводится только первый URL-адрес.

С параметром --push запрашиваются URL-адреса для отправки данных, а не для их получения.

С параметром --all выводятся все URL-адреса удалённого репозитория.

set-url

Изменить URL-адреса удалённого репозитория. Задать для первого URL-адреса удалённого репозитория <name>, соответствующего регулярному выражению <oldurl> (для первого URL-адреса, если <oldurl> не указано), значение <newurl>. Если <oldurl> не соответствует ни одному URL-адресу, возникает ошибка и изменения не вносятся.

С параметром --push изменяются URL-адреса для отправки данных, а не для их получения.

С параметром --add новый URL-адрес добавляется вместо изменения существующих.

С параметром --delete все URL-адреса удалённого репозитория <name>, соответствующие регулярному выражению <URL>, удаляются вместо изменения существующих. Попытка удалить все URL-адреса, не предназначенные для отправки данных, приведёт к ошибке.

Обратите внимание: URL-адреса для отправки и получения данных, хотя их можно задать по-разному, всё равно должны указывать на одно и то же место. То, что вы отправили по URL-адресу для отправки, должно быть видно при немедленном получении данных по URL-адресу для получения. Если вы хотите получать данные из одного места (например, из вышестоящего репозитория), а отправлять в другое (например, в репозиторий для публикации), используйте два отдельных удалённых репозитория.

show

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

С параметром -n перед этим не запрашиваются вершины веток удалённого репозитория с помощью команды git ls-remote <name>; вместо этого используются кэшированные данные.

prune

Удалить устаревшие ссылки, связанные с <name>. По умолчанию удаляются устаревшие ветки отслеживания удалённого репозитория в <name>, но в зависимости от глобальной конфигурации и настроек удалённого репозитория могут быть удалены даже локальные теги, которые туда не отправлялись. Эквивалентно команде git fetch --prune <name>, за исключением того, что новые ссылки не будут получены.

В разделе PRUNING команды git-fetch[1] описано, что именно будет удалено в зависимости от настроек конфигурации.

С параметром --dry-run выводится список веток, которые будут удалены, но фактическое удаление не выполняется.

update

Получить обновления для удалённых репозиториев или групп удалённых репозиториев в соответствии с определением remotes.<group>. Если в командной строке не указаны ни группа, ни удалённый репозиторий, используется параметр конфигурации remotes.default; если параметр remotes.default не задан, обновляются все удалённые репозитории, для которых параметр конфигурации remote.<name>.skipDefaultUpdate не имеет значения true. (См. git-config[1].)

С параметром --prune для всех обновлённых удалённых репозиториев выполняется очистка.

Обсуждение

Конфигурация удалённого репозитория задаётся с помощью переменных конфигурации remote.origin.url и remote.origin.fetch. (См. git-config[1].)

Код завершения

При успешном выполнении код завершения равен 0.

Если такие подкоманды, как add, rename и remove, не могут найти нужный удалённый репозиторий, код завершения равен 2. Если удалённый репозиторий уже существует, код завершения равен 3.

При любой другой ошибке код завершения может иметь любое другое ненулевое значение.

Примеры

  • Добавить новый удалённый репозиторий, получить данные и переключиться на его ветку

    $ git remote
    origin
    $ git branch -r
      origin/HEAD -> origin/master
      origin/master
    $ git remote add staging git://git.kernel.org/.../gregkh/staging.git
    $ git remote
    origin
    staging
    $ git fetch staging
    ...
    From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
     * [new branch]      master     -> staging/master
     * [new branch]      staging-linus -> staging/staging-linus
     * [new branch]      staging-next -> staging/staging-next
    $ git branch -r
      origin/HEAD -> origin/master
      origin/master
      staging/master
      staging/staging-linus
      staging/staging-next
    $ git switch -c staging staging/master
    ...
  • Имитировать git clone, отслеживая только выбранные ветки

    $ mkdir project.git
    $ cd project.git
    $ git init
    $ git remote add -f -t master -m master origin git://example.com/git.git/
    $ git merge origin

См. также

git-fetch[1] git-branch[1] git-config[1]

remote

© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-remote

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API