close
Image
Русский ▾ Topics ▾ Latest version ▾ git-remote last updated in 2.53.0

НАЗВАНИЕ

git-remote - Управление отслеживаемыми репозиториями

ОБЗОР

git remote [-v | --verbose]
git remote add [-t <ветка>] [-m <мастер>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <имя> <URL>
git remote rename [--[no-]progress] <старое> <новое>
git remote remove <имя>
git remote set-head <имя> (-a | --auto | -d | --delete | <ветка>)
git remote set-branches [--add] <имя> <ветка>…​
git remote get-url [--push] [--all] <имя>
git remote set-url [--push] <имя> <новый_URL> [<старый_URL>]
git remote set-url --add [--push] <имя> <новый_URL>
git remote set-url --delete [--push] <имя> <URL>
git remote [-v | --verbose] show [-n] <имя>…​
git remote prune [-n | --dry-run] <имя>…​
git remote [-v | --verbose] update [-p | --prune] [(<группа> | <внешний_репозиторий>)…​]

ОПИСАНИЕ

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

ПАРАМЕТРЫ

-v
--verbose

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

КОМАНДЫ

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

add

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

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

С параметром --tags команда git fetch <имя> импортирует каждую метку из внешнего репозитория.

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

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

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

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

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

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

rename

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

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

remove
rm

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

set-head

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

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

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

Используйте <ветка>, чтобы явно установить символическую ссылку refs/remotes/<имя>/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 для отправки, а не URL для извлечения.

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

set-url

Изменяет URL для внешнего репозитория. Устанавливает первый URL для внешнего репозитория <имя>, который соответствует регулярному выражению <старый_URL> (первый URL, если <старый_URL> не указан), в <новый_URL>. Если <старый_URL> не соответствует ни одному URL, возникает ошибка, и ничего не меняется.

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

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

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

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

show

Необходима некоторая информацию об удалённом <имя>.

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

prune

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

Смотрите раздел ПОДЧИСТКА в git-fetch[1], чтобы узнать, что будет подчищено в зависимости от различных конфигураций.

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

update

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

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

ОБСУЖДЕНИЕ

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

КОД ЗАВЕРШЕНИЯ

В случае успеха код выхода равен 0.

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

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

ПРИМЕРЫ

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

    $ 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

Является частью пакета git[1]