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

НАЗВА

git-am  — Застосування набору латок з поштової скриньки

СИНОПСИС

git am [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8] [--no-verify]
	 [--[no-]3way] [--interactive] [--committer-date-is-author-date]
	 [--ignore-date] [--ignore-space-change | --ignore-whitespace]
	 [--whitespace=<action>] [-C<n>] [-p<n>] [--directory=<dir>]
	 [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
	 [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>]
	 [--quoted-cr=<action>]
	 [--empty=(stop|drop|keep)]
	 [(<mbox> | <Maildir>)…​]
git am (--continue | --skip | --abort | --quit | --retry | --show-current-patch[=(diff|raw)] | --allow-empty)

ОПИС

Розбиває поштові повідомлення у поштовій скриньці на повідомлення журналу комітів, інформацію про авторство та латки, і застосовує їх до поточної гілки. Ви можете уявити це як зворотну операцію git-format-patch[1], що виконується в гілці з лінійною історією без злиття.

ОПЦІЇ

(<mbox>|<Maildir>)…​

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

-s
--signoff

Додавати трейлер Signed-off-by до повідомлення коміту, використовуючи свій ідентифікатор комітера. Дивіться опцію підписання в git-commit[1] для отримання додаткової інформації.

-k
--keep

Передає прапорець -k до git mailinfo (див. git-mailinfo[1]).

--keep-non-patch

Передає прапорець -b до git mailinfo (див. git-mailinfo[1]).

--keep-cr
--no-keep-cr

З опцією --keep-cr запускає команду git mailsplit (див. git-mailsplit[1]) з тією ж опцією, щоб уникнути видалення символів CR у кінці рядків. Для визначення стандартної поведінки можна використовувати змінну конфігурації am.keepcr. Опція --no-keep-cr дозволяє замінити значення am.keepcr.

-c
--scissors

Видалити все в тілі перед лінією ножиць (див. git-mailinfo[1]). Може бути стандартно активоване за допомогою змінної конфігурації mailinfo.scissors.

--no-scissors

Ігнорувати лінії ножиць (див. git-mailinfo[1]).

--quoted-cr=<action>

Цей прапорець буде передано до git mailinfo (див. git-mailinfo[1]).

--empty=(drop|keep|stop)

Як обробляти електронний лист без латки:

drop

Повідомлення електронної пошти буде пропущено.

keep

Буде створено порожній коміт, у якому як журнал буде вказано вміст електронного листа.

stop

Команда завершиться невдачею, зупинка відбувається посеред поточного сеансу am. Це стандартна поведінка.

-m
--message-id

Передає прапорець -m до git mailinfo (див. git-mailinfo[1]), щоб заголовок Message-ID було додано до повідомлення коміту. Змінну конфігурації am.messageid можна використовувати для визначення стандартної поведінки.

--no-message-id

Не додавати заголовок Message-ID до повідомлення коміту. no-message-id корисний для перевизначення am.messageid.

-q
--quiet

Придушити вивід. Друкувати лише повідомлення про помилки.

-u
--utf8

Передає прапорець -u до git mailinfo (див. git-mailinfo[1]). Запропоноване повідомлення журналу комітів, взяте з електронного листа, перекодується в кодування UTF-8 (змінна конфігурації i18n.commitEncoding може бути використана для визначення бажаного кодування проєкту, якщо воно не UTF-8).

У попередніх версіях git це було необовʼязково, але тепер це стандартна поведінка. Ви можете скористатися --no-utf8, щоб перевизначити це.

--no-utf8

Передає прапорець -n до git mailinfo (див. git-mailinfo[1]).

-3
--3way
--no-3way

Якщо латка не застосовується без помилок, скористайтись тристороннім злиттям, якщо у латці вказано ідентифікатори бловів, до яких вона має бути застосована, і ці блоби доступні локально. Для заміни змінної конфігурації am.threeWay можна використати опцію --no-3way. Докладнішу інформацію див. у розділі am.threeWay у документації git-config[1].

--rerere-autoupdate
--no-rerere-autoupdate

Після того як механізм rerere повторно використає збережене рішення поточного конфлікту для оновлення файлів у робочому дереві, дозвольте йому також оновити індекс результатом вирішення. Параметр --no-rerere-autoupdate — це хороший спосіб ще раз перевірити, що зробив git-rerere[1], і виявити можливі помилки злиття, перш ніж зафіксувати результат в індексі за допомогою окремої команди git-add[1].

--ignore-space-change
--ignore-whitespace
--whitespace=<action>
-C<n>
-p<n>
--directory=<dir>
--exclude=<path>
--include=<path>
--reject

Ці прапорці передаються до програми git apply (див. git-apply[1]), яка застосовує латку.

Дійсними <діями> для опції --whitespace є: nowarn, warn, fix, error та error-all.

--patch-format

Зазвичай команда намагатиметься автоматично визначити формат латки. Цей параметр дозволяє користувачеві обійти автоматичне визначення та вказати формат латки, у якому його слід інтерпретувати. Дійсні формати: mbox, mboxrd, stgit, stgit-series та hg.

-i
--interactive

Запускати в інтерактивному режимі.

-n
--no-verify

Зазвичай виконуються гачки pre-applypatch та applypatch-msg. Коли вказано будь-який з параметрів --no-verify або -n, вони оминаються. Див. також githooks[5].

--committer-date-is-author-date

За звичай команда записує дату з листа електронної пошти як дату автора коміту, а час створення коміту використовує як дату комітера. Це дозволяє користувачеві приховувати дату комітера, використовуючи те саме значення, що й дату автора.

Warning
Механізм відстеження історії передбачає, що відбитки часу комітів не зменшуються. Вам слід подумати, чи дійсно вам потрібно використовувати цю опцію. Використовувати цю опцію слід лише для того, щоб замінити дату коммітера при застосуванні комітів поверх базової версії, коміт якої є старішим (за датою коміту) за найстарішу латку, яку ви застосовуєте.
--ignore-date

Зазвичай команда записує дату з листа електронної пошти як дату автора коміту, а час створення коміту використовує як дату комітера. Це дозволяє користувачеві приховувати дату автора, використовуючи те саме значення, що й дату комітера.

--skip

Пропустити поточну латку. Це має сенс лише під час перезапуску перерваної операції накладання латки.

-S[<keyid>]
--gpg-sign[=<keyid>]
--no-gpg-sign

Підписувати коміти за допомогою GPG. Аргумент keyid є необов’язковим, а стандартним значенням є ідентифікатор автора коміту; якщо його вказано, він повинен бути вказаний безпосередньо після опції без пробілу. Опція --no-gpg-sign дозволяє скасувати дію як конфігураційної змінної commit.gpgSign, так і раніше вказаної опції --gpg-sign.

--continue
-r
--resolved

Після невдалого застосування латки (наприклад, при спробі застосувати латку, що суперечить іншим) користувач застосував її вручну, і файл індексу містить результат цього застосування. Створює коміт, використовуючи інформацію про автора та журнал комітів, витягнуту з електронного листа, а також поточний файл індексу, і продовжує роботу.

--resolvemsg=<msg>

У разі помилки під час застосування латки перед завершенням роботи на екрані зʼявиться повідомлення <msg>. Це замінює стандартне повідомлення, в якому пропонується використати параметри --continue або --skip для вирішення проблеми. Ця функція призначена виключно для внутрішнього використання між командами git rebase та git am.

--abort

Відновити початкову гілку та перервати операцію накладання латки. Повернути вміст файлів, що беруть участь в операції am, до стану до am.

--quit

Перервати операцію накладання латки, але залишити HEAD та індекс без змін.

--retry

Спробувати ще раз застосувати останню латку, що спричинила конфлікт. Зазвичай це доцільно лише для того, щоб передати додаткові параметри при повторній спробі (наприклад, --3way), оскільки в іншому разі ви знову зіткнетеся з тією самою помилкою.

--show-current-patch[=(diff|raw)]

Показати повідомлення, на якому git am зупинився через конфлікти. Якщо вказано raw, показати необроблений вміст електронного листа; якщо вказано diff, показати лише частину diff. Зазвичай — raw.

--allow-empty

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

ОБГОВОРЕННЯ

Імʼя автора коміту береться з рядка «From:» повідомлення, а дата створення коміту — з рядка «Date:» повідомлення. Рядок «Subject:» використовується як назва коміту після видалення загального префікса «[PATCH <будь-що>]». Рядок «Subject:» повинен лаконічно описувати суть коміту в одному рядку тексту.

Рядки «From:», «Date:» та «Subject:», що починають основний текст, замінюють відповідні значення імені автора коміту та заголовка, взяті з заголовків.

Повідомлення коміту формується заголовком, взятим з "Subject: ", порожнім рядком та тілом повідомлення до початку латки. Зайві пробіли в кінці кожного рядка автоматично видаляються.

Очікується, що латку буде розміщено в тексті, безпосередньо після повідомлення. Будь-який рядок у такому форматі:

  • три дефіси та кінець рядка, або

  • рядок, що починається з "diff -", або

  • рядок, що починається з "Index:"

вважається початком латки, а повідомлення журналу комітів завершується до першої появи такого рядка.

Під час першого виклику git am ви надаєте йому назви поштових скриньок для обробки. Побачивши першу латку, що не застосовується, він перериває роботу посередині. Ви можете відновитися після цього одним із двох способів:

  1. пропустити поточну латку, повторно виконавши команду з опцією --skip.

  2. вручну розвʼязати конфлікт у робочій теці та оновити індексний файл, щоб привести його до стану, який мала б створити латка. Потім виконайте команду з опцією --continue.

Команда відмовляється обробляти нові поштові скриньки, доки поточна операція не буде завершена, тому, якщо ви вирішите почати з нуля, виконайте git am --abort перед запуском команди з іменами поштових скриньок.

Перед застосуванням будь-яких латок, ORIG_HEAD встановлюється на вершину поточної гілки. Це корисно, якщо у вас виникають проблеми з кількома комітами, наприклад, запуск git am на неправильній гілці або помилка в комітах, яку легше виправити, змінивши поштову скриньку (наприклад, помилки в рядках "From:").

ГАЧКИ

Ця команда може виконувати гачки applypatch-msg, pre-applypatch та post-applypatch. Див. githooks[5] для отримання додаткової інформації.

КОНФІГУРАЦІЯ

Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:

Warning

Missing uk/config/am.adoc

See original version for this content.

ДИВ. ТАКОЖ

GIT

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