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

НАЗВА

git-send-pack - Передача об’єктів через протокол Git до іншого репозиторію

СИНОПСИС

git send-pack [--mirror] [--dry-run] [--force]
		[--receive-pack=<git-receive-pack>]
		[--verbose] [--thin] [--atomic]
		[--[no-]signed | --signed=(true|false|if-asked)]
		[<host>:]<directory> (--all | <ref>…​)

ОПИС

Зазвичай, вам варто використовувати git push, що є обгорткою вищого рівня для цієї команди. Див. git-push[1].

Викликає git-receive-pack на можливо віддаленому репозиторії та оновлює його з поточного репозиторію, надсилаючи іменовані посилання.

ОПЦІЇ

--receive-pack=<git-receive-pack>

Шлях до програми git-receive-pack на віддаленому кінці. Іноді корисно під час надсилання даних до віддаленого репозиторію через ssh, якщо у вас немає програми в каталозі за замовчуванням $PATH.

--exec=<git-receive-pack>

Те саме, що --receive-pack=<git-receive-pack>.

--all

Замість того, щоб явно вказувати, які посилання оновлювати, оновіть усі заголовки, які існують локально.

--stdin

Взяти список посилань зі stdin, по одному на рядок. Якщо в командному рядку, окрім цього параметра, є посилання, вказані в stdin, тоді посилання зі stdin обробляються після тих, що в командному рядку.

Якщо разом із цією опцією вказано --stateless-rpc, то список посилань має бути у форматі пакета (pkt-line). Кожне посилання має бути в окремому пакеті, а список має закінчуватися пакетом flush.

--dry-run

Зробіть усе, крім надсилання оновлень.

--force

Зазвичай команда відмовляється оновлювати віддалене посилання, яке не є предком локального посилання, що використовується для його перезапису. Цей прапорець вимикає перевірку. Це означає, що віддалений репозиторій може втратити коміти; використовуйте його обережно.

--verbose

Виконуйте багатослівно.

--thin

Надсилати «тонкий» пакет, який записує об’єкти у дельтифікованому вигляді на основі об’єктів, що не входять до пакету, для зменшення мережевого трафіку.

--atomic

Використовуйте атомарну транзакцію для оновлення посилань. Якщо будь-яке з посилань не оновиться, то вся надсилання завершиться невдачею без зміни будь-яких посилань.

--[no-]signed
--signed=(true|false|if-asked)

Підписати push-запит для оновлення посилань на стороні приймача, щоб дозволити перевірку хуками та/або запис у журнал. Якщо встановлено значення false або --no-signed, спроба підписання не буде здійснена. Якщо встановлено значення true або --signed, push-запит завершиться невдачею, якщо сервер не підтримує підписані push-запити. Якщо встановлено значення if-asked, підписати тоді і тільки тоді, коли сервер підтримує підписані push-запити. Push-запит також завершиться невдачею, якщо фактичний виклик gpg --sign завершиться невдачею. Див. git-receive-pack[1] для отримання детальної інформації на стороні приймача.

--push-option=<string>

Передати вказаний рядок як опцію push для використання хуками на стороні сервера. Якщо сервер не підтримує опції push, вивести помилку. Див. git-push[1] та githooks[5] для отримання детальної інформації.

<host>

Віддалений хост для розміщення репозиторію. Коли ця частина вказана, git-receive-pack викликається через ssh.

<directory>

Репозиторій для оновлення.

<ref>…​

Віддалені посилання для оновлення.

ВКАЗАННЯ ПОСИЛАНЬ

Існує три способи вказати, які посилання оновлювати на віддаленому кінці.

З прапорцем --all усі посилання, що існують локально, передаються на віддалену сторону. Ви не можете вказати жодного <ref>, якщо використовуєте цей прапорець.

Без --all та без будь-якого <ref> оновлюються заголовки, що існують як на локальному, так і на віддаленому боці.

Коли один або декілька <ref> вказані явно (чи то в командному рядку, чи через --stdin), це може бути або один шаблон, або пара таких шаблонів, розділених двокрапкою ":" (це означає, що назва посилання не може містити двокрапку). Один шаблон <name> – це просто скорочення від <name>:<name>.

Кожна пара шаблонів складається з вихідної сторони (до двокрапки) та сторони призначення (після двокрапки). Посилання, яке потрібно вставити, визначається шляхом пошуку відповідності, що відповідає вихідній стороні, а місце, куди воно буде вставлено, визначається за допомогою сторони призначення. Правила, що використовуються для зіставлення посилання, є тими ж правилами, що використовуються git rev-parse для розв’язання символьного імені посилання. Див. git-rev-parse[1].

  • Це помилка, якщо <src> не відповідає точно одному з локальних посилань.

  • Це помилка, якщо <dst> відповідає кільком віддаленим посиланням.

  • Якщо <dst> не відповідає жодному віддаленому посиланню, або

    • воно має починатися з "refs/"; у цьому випадку <dst> використовується як пункт призначення буквально.

    • <src> == <dst>, а посилання, яке збіглося з <src>, не повинно існувати в наборі віддалених посилань; посилання, яке локально збіглося з <src>, використовується як назва призначення.

Без --force, посилання <src> зберігається на віддаленому сервері лише якщо <dst> не існує або <dst> є належною підмножиною (тобто предком) <src>. Ця перевірка, відома як "перевірка швидкого просування", виконується, щоб уникнути випадкового перезапису віддаленого посилання та втрати комітів інших користувачів звідти.

З параметром --force перевірка швидкого перемотування вперед вимикається для всіх посилань.

За бажанням, параметр <ref> може мати префікс із знаком «+», щоб вимкнути перемотку лише для цього посилання.

GIT

Частина набору git[1]