Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
-
2.53.0
2026-02-02
-
2.52.0
2025-11-17
- 2.50.1 → 2.51.2 no changes
-
2.50.0
2025-06-16
- 2.46.1 → 2.49.1 no changes
-
2.46.0
2024-07-29
- 2.45.1 → 2.45.4 no changes
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.4 no changes
-
2.43.0
2023-11-20
- 2.42.2 → 2.42.4 no changes
-
2.42.1
2023-11-02
- 2.41.1 → 2.42.0 no changes
-
2.41.0
2023-06-01
- 2.40.1 → 2.40.4 no changes
-
2.40.0
2023-03-12
- 2.38.1 → 2.39.5 no changes
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 no changes
-
2.35.0
2022-01-24
- 2.33.2 → 2.34.8 no changes
-
2.33.1
2021-10-12
- 2.32.1 → 2.33.0 no changes
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 no changes
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 no changes
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 no changes
-
2.26.0
2020-03-22
- 2.25.1 → 2.25.5 no changes
-
2.25.0
2020-01-13
- 2.22.1 → 2.24.4 no changes
-
2.22.0
2019-06-07
- 2.17.1 → 2.21.4 no changes
-
2.17.0
2018-04-02
- 2.11.4 → 2.16.6 no changes
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.8.6 no changes
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.4.12 → 2.5.6 no changes
-
2.3.10
2015-09-28
- 2.2.3 no changes
- 2.1.4 no changes
-
2.0.5
2014-12-17
ОБЗОР
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=<действие>] [-C<число>] [-p<число>] [--directory=<каталог>] [--exclude=<путь>] [--include=<путь>] [--reject] [-q | --quiet] [--[no-]scissors] [-S[<id-ключа>]] [--patch-format=<формат>] [--quoted-cr=<действие>] [--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>)…
-
Список файлов почтовых ящиков для чтения патчей. Если этот аргумент не предоставлен, команда читает из стандартного ввода. Если указаны каталоги, они будут обрабатываться как Maildir.
- -s
- --signoff
-
Добавляет трейлер
Signed-off-byв сообщение коммита, используя вашу личность коммитера. Для получения дополнительной информации см. опцию signoff в 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)
-
Как обрабатывать электронное письмо без патча:
- -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
-
Когда патч не применяется чисто, откатывается на трёхстороннее слияние, если патч записывает идентификаторы blob, к которым он должен применяться, и эти blob доступны локально.
--no-3wayможно использовать для переопределения конфигурационной переменной am.threeWay. Для получения дополнительной информации см. am.threeWay в git-config[1]. -
--rerere-autoupdate -
--no-rerere-autoupdate -
После того как механизм rerere повторно использует записанное ранее разрешение на текущем конфликте для обновления файлов в рабочем каталоге, разрешить также обновить индекс, применив к нему результат разрешения. Параметр
--no-rerere-autoupdateможно использовать как удобный способом дважды проверить результат работыrerere, и поймать потенциальные ошибки слияния до выполнения коммита, добавляя результат в индексе с помощью отдельной командыgitadd.
- --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[<id-ключа>]
- --gpg-sign[=<id-ключа>]
- --no-gpg-sign
-
Подписывать коммиты с помощью GPG. Аргумент id-ключа необязателен, и если не указан, в качестве значения по умолчанию будет использоваться личное имя коммиттера; если аргумент указан, он должен следовать сразу после параметра, без пробела. Параметр
--no-gpg-signполезен, если нужно отменить переменную конфигурацииcommit.gpgSignили параметр--gpg-sign, заданный ранее. - --continue
- -r
- --resolved
-
После неудачи применения патча (например, попытки применить конфликтующий патч) пользователь вручную применил его, и индексный файл хранит результат применения. Создаёт коммит, используя авторство и журнал коммита, извлечённые из эл. письма и текущего индексного файла, и продолжает.
- --resolvemsg=<msg>
-
При возникновении сбоя применения патча перед выходом на экран будет напечатано <сообщение>. Это переопределяет стандартное сообщение, информирующее об использовании
--continueили--skipдля обработки сбоя. Это исключительно для внутреннего использования между git rebase и git am. - --abort
-
Восстановить исходную ветку и прервать операцию применения патчей. Вернуть содержимое файлов, задействованных в операции am, в состояние до am.
- --quit
-
Прерывает операцию применения патчей, но оставляет HEAD и индекс нетронутыми.
- --retry
-
Пытается применить последний конфликтующий патч снова. Обычно это полезно только для передачи дополнительных опций при повторной попытке (например,
--3way), поскольку в противном случае вы просто снова увидите ту же ошибку. - --show-current-patch[=(diff|raw)]
-
Показывает сообщение, на котором
gitamостановился из-за конфликтов. Если указаноraw, показывает исходное содержимое эл. письма; еслиdiff, показывает только часть diff. По умолчаниюraw. - --allow-empty
-
После сбоя применения патча во входном эл. письме без патча создаёт пустой коммит с содержимым эл. письма в качестве его сообщения журнала.
ОБСУЖДЕНИЕ
Имя автора коммита берётся из строки "From: " сообщения, а дата автора коммита берётся из строки "Date: " сообщения. Строка "Subject: " используется в качестве заголовка коммита после удаления общего префикса "[PATCH <что-либо>]". Строка "Subject: " должна кратко описывать, о чём коммит, в одной строке текста.
Строки "From: ", "Date: " и "Subject: ", начинающие тело, переопределяют соответствующие значения имени автора и заголовка коммита, взятые из заголовков.
Сообщение коммита формируется из заголовка, взятого из "Subject: ", пустой строки и тела сообщения до того места, где начинается патч. Лишние пробелы в конце каждой строки автоматически удаляются.
Ожидается, что патч будет встроенным, непосредственно следующим за сообщением. Любая строка вида:
-
три тире и конец строки, или
-
строка, начинающаяся с "diff -", или
-
строка, начинающаяся с "Index: "
воспринимается как начало патча, а сообщение журнала коммита завершается перед первым вхождением такой строки.
При первоначальном вызове git am вы передаёте ему имена почтовых ящиков для обработки. Увидев первый патч, который не применяется, он прерывается посередине. Вы можете восстановиться из этого одним из двух способов:
-
пропустить текущий патч, повторно запустив команду с опцией
--skip. -
вручную разрешить конфликт в рабочем каталоге и обновить индексный файл, чтобы привести его в состояние, которое должен был создать патч. Затем запустите команду с опцией
--continue.
Команда отказывается обрабатывать новые почтовые ящики до завершения текущей операции, поэтому если вы решите начать заново, запустите git am --abort перед запуском команды с именами почтовых ящиков.
Перед применением любых патчей ORIG_HEAD устанавливается в конец текущей ветки. Это полезно, если у вас возникают проблемы с несколькими коммитами, например, запуск git am на неправильной ветке или ошибка в коммитах, которую легче исправить, изменив почтовый ящик (например, ошибки в строках "From:").
ПЕРЕХВАТЧИКИ
Эта команда может выполнять хуки applypatch-msg, pre-applypatch и post-applypatch. Подробности см. в githooks[5].
КОНФИГУРАЦИЯ
Дальнейшее содержание этого раздела, повторяет то, что может быть найдено в git-config[1]:
|
Warning
|
Missing See original version for this content. |
GIT
Является частью пакета git[1]