українська мова ▾ Topics ▾ Latest version ▾ git-remote last updated in 2.53.0

НАЗВА

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>)…​]

ОПИС

Дозволяє керувати набором репозиторіїв («remotes») гілки яких ви відстежуєте.

ОПЦІЇ

-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/<назва>/HEAD встановлюється так, щоб воно вказувало на гілку <master> віддаленого репозиторію. Див. також команду set-head.

Якщо при створенні дзеркала для завантаження використовується параметр --mirror=fetch, посилання не зберігатимуться в просторі імен refs/remotes/, а весь вміст теки refs/ на віддаленому репозиторії буде безпосередньо дзеркально скопійовано в теку refs/ локального репозиторію. Цей параметр доцільно використовувати лише для «голих» репозиторіїв, оскільки операція завантаження перезапише всі локальні коміти.

Якщо дзеркало push створюється з параметром --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/<назва>/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-адрес додається нова URL-адреса.

З параметром --delete замість зміни наявних URL-адрес видаляються всі URL-адреси, що відповідають регулярному виразу <URL>, для віддаленого репозиторію <name>. Спроба видалити всі URL-адреси, що не є push-адресами, призведе до помилки.

Зверніть увагу, що URL-адреса для надсилання та URL-адреса для отримання, хоч їх і можна налаштувати по-різному, все одно повинні вказувати на одне й те саме місце. Те, що ви надіслали на URL-адресу для надсилання, має збігатися з тим, що ви побачите, якщо одразу ж отримаєте дані з URL-адреси для отримання. Якщо ви намагаєтеся отримати дані з одного місця (наприклад, з вашого upstream) і надіслати їх в інше (наприклад, у ваш репозиторій для публікації), використовуйте два окремі віддалені репозиторії.

show

Показує деяку інформацію про віддалений репозиторій <імʼя>.

З опцією -n вершини з віддалених репозиторіїв спочатку не запитуються за допомогою команди git ls-remote <name>; замість цього використовується інформація з кешу.

prune

Видаляє застарілі посилання, пов’язані з <name>. Стандартно видаляються застарілі гілки віддаленого відстеження в <name>, але залежно від глобальних налаштувань та конфігурації віддаленого репозиторію ми можемо навіть видалити локальні теги, які ще не були надіслані туди. Еквівалентно команді git fetch --prune <name>, за винятком того, що нові посилання не будуть завантажуватися.

Дивіться розділ ОЧИЩЕННЯ у документації 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
    ...
    З 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]