git-am(1)
=========

NAME
----
git-am - Apply a series of patches from a mailbox


SYNOPSIS
--------
[synopsis]
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[<key-id>]] [--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)

DESCRIPTION
-----------
Splits mail messages in a mailbox into commit log messages,
authorship information, and patches, and applies them to the
current branch. You could think of it as a reverse operation
of linkgit:git-format-patch[1] run on a branch with a straight
history without merges.

OPTIONS
-------
`(<mbox>|<Maildir>)...`::
	The list of mailbox files to read patches from. If you do not
	supply this argument, the command reads from the standard input.
	If you supply directories, they will be treated as Maildirs.

`-s`::
`--signoff`::
	Add a `Signed-off-by` trailer to the commit message (see
	linkgit:git-interpret-trailers[1]), using the committer identity
	of yourself.  See the signoff option in linkgit:git-commit[1]
	for more information.

`-k`::
`--keep`::
	Pass `-k` flag to linkgit:git-mailinfo[1].

`--keep-non-patch`::
	Pass `-b` flag to linkgit:git-mailinfo[1].

`--keep-cr`::
`--no-keep-cr`::
	With `--keep-cr`, call linkgit:git-mailsplit[1]
	with the same option, to prevent it from stripping CR at the end of
	lines. `am.keepcr` configuration variable can be used to specify the
	default behaviour.  `--no-keep-cr` is useful to override `am.keepcr`.

`-c`::
`--scissors`::
	Remove everything in body before a scissors line (see
	linkgit:git-mailinfo[1]). Can be activated by default using
	the `mailinfo.scissors` configuration variable.

`--no-scissors`::
	Ignore scissors lines (see linkgit:git-mailinfo[1]).

`--quoted-cr=<action>`::
	This flag will be passed down to linkgit:git-mailinfo[1].

`--empty=(drop|keep|stop)`::
	How to handle an e-mail message lacking a patch:
+
--
`drop`;;
	The e-mail message will be skipped.
`keep`;;
	An empty commit will be created, with the contents of the e-mail
	message as its log.
`stop`;;
	The command will fail, stopping in the middle of the current `am`
	session. This is the default behavior.
--

`-m`::
`--message-id`::
	Pass the `-m` flag to linkgit:git-mailinfo[1],
	so that the `Message-ID` header is added to the commit message.
	The `am.messageid` configuration variable can be used to specify
	the default behaviour.

`--no-message-id`::
	Do not add the Message-ID header to the commit message.
	`--no-message-id` is useful to override `am.messageid`.

`-q`::
`--quiet`::
	Be quiet. Only print error messages.

`-u`::
`--utf8`::
	Pass `-u` flag to linkgit:git-mailinfo[1].
	The proposed commit log message taken from the e-mail
	is re-coded into UTF-8 encoding (configuration variable
	`i18n.commitEncoding` can be used to specify the project's
	preferred encoding if it is not UTF-8).
+
This was optional in prior versions of git, but now it is the
default.   You can use `--no-utf8` to override this.

`--no-utf8`::
	Pass `-n` flag to linkgit:git-mailinfo[1].

`-3`::
`--3way`::
`--no-3way`::
	When the patch does not apply cleanly, fall back on
	3-way merge if the patch records the identity of blobs
	it is supposed to apply to and we have those blobs
	available locally. `--no-3way` can be used to override
	`am.threeWay` configuration variable. For more information,
	see `am.threeWay` in linkgit:git-config[1].

include::rerere-options.adoc[]

`--ignore-space-change`::
`--ignore-whitespace`::
`--whitespace=<action>`::
`-C<n>`::
`-p<n>`::
`--directory=<dir>`::
`--exclude=<path>`::
`--include=<path>`::
`--reject`::
	These flags are passed to the linkgit:git-apply[1] program that
	applies the patch.
+
Valid _<action>_ for the `--whitespace` option are:
`nowarn`, `warn`, `fix`, `error`, and `error-all`.

`--patch-format`::
	By default the command will try to detect the patch format
	automatically. This option allows the user to bypass the automatic
	detection and specify the patch format that the patch(es) should be
	interpreted as. Valid formats are mbox, mboxrd,
	stgit, stgit-series, and hg.

`-i`::
`--interactive`::
	Run interactively.

`--verify`::
`-n`::
`--no-verify`::
	Run the `pre-applypatch` and `applypatch-msg` hooks. This is the
	default. Skip these hooks with `-n` or `--no-verify`. See also
	linkgit:githooks[5].
+
Note that `post-applypatch` cannot be skipped.

`--committer-date-is-author-date`::
	By default the command records the date from the e-mail
	message as the commit author date, and uses the time of
	commit creation as the committer date. This allows the
	user to lie about the committer date by using the same
	value as the author date.
+
WARNING: The history walking machinery assumes that commits have
non-decreasing commit timestamps. You should consider if you really need
to use this option. Then you should only use this option to override the
committer date when applying commits on top of a base which commit is
older (in terms of the commit date) than the oldest patch you are
applying.

`--ignore-date`::
	By default the command records the date from the e-mail
	message as the commit author date, and uses the time of
	commit creation as the committer date. This allows the
	user to lie about the author date by using the same
	value as the committer date.

`--skip`::
	Skip the current patch.  This is only meaningful when
	restarting an aborted patch.

`-S[<key-id>]`::
`--gpg-sign[=<key-id>]`::
`--no-gpg-sign`::
	GPG-sign commits. The _<key-id>_ is optional and
	defaults to the committer identity; if specified, it must be
	stuck to the option without a space. `--no-gpg-sign` is useful to
	countermand both `commit.gpgSign` configuration variable, and
	earlier `--gpg-sign`.

`--continue`::
`-r`::
`--resolved`::
	After a patch failure (e.g. attempting to apply
	conflicting patch), the user has applied it by hand and
	the index file stores the result of the application.
	Make a commit using the authorship and commit log
	extracted from the e-mail message and the current index
	file, and continue.

`--resolvemsg=<msg>`::
	When a patch failure occurs, _<msg>_ will be printed
	to the screen before exiting.  This overrides the
	standard message informing you to use `--continue`
	or `--skip` to handle the failure.  This is solely
	for internal use between linkgit:git-rebase[1] and
	linkgit:git-am[1].

`--abort`::
	Restore the original branch and abort the patching operation.
	Revert the contents of files involved in the am operation to their
	pre-am state.

`--quit`::
	Abort the patching operation but keep `HEAD` and the index
	untouched.

`--retry`::
	Try to apply the last conflicting patch again. This is generally
	only useful for passing extra options to the retry attempt
	(e.g., `--3way`), since otherwise you'll just see the same
	failure again.

`--show-current-patch[=(diff|raw)]`::
	Show the message at which linkgit:git-am[1] has stopped due to
	conflicts.  If `raw` is specified, show the raw contents of
	the e-mail message; if `diff`, show the diff portion only.
	Defaults to `raw`.

`--allow-empty`::
	After a patch failure on an input e-mail message lacking a patch,
	create an empty commit with the contents of the e-mail message
	as its log message.

[[discussion]]
DISCUSSION
----------

The commit author name is taken from the "From: " line of the
message, and commit author date is taken from the "Date: " line
of the message.  The "Subject: " line is used as the title of
the commit, after stripping common prefix "[PATCH <anything>]".
The "Subject: " line is supposed to concisely describe what the
commit is about in one line of text.

"From: ", "Date: ", and "Subject: " lines starting the body override the
respective commit author name and title values taken from the headers.

The commit message is formed by the title taken from the
"Subject: ", a blank line and the body of the message up to
where the patch begins.  Excess whitespace at the end of each
line is automatically stripped.

The patch is expected to be inline, directly following the
message.
include::format-patch-end-of-commit-message.adoc[]

This means that the contents of the commit message can inadvertently
interrupt the processing (see the <<caveats,CAVEATS>> section below).

When initially invoking linkgit:git-am[1], you give it the names of the mailboxes
to process.  Upon seeing the first patch that does not apply, it
aborts in the middle.  You can recover from this in one of two ways:

. skip the current patch by re-running the command with the `--skip`
  option.

. hand resolve the conflict in the working directory, and update
  the index file to bring it into a state that the patch should
  have produced.  Then run the command with the `--continue` option.

The command refuses to process new mailboxes until the current
operation is finished, so if you decide to start over from scratch,
run `git am --abort` before running the command with mailbox
names.

Before any patches are applied, `ORIG_HEAD` is set to the tip of the
current branch.  This is useful if you have problems with multiple
commits, like running linkgit:git-am[1] on the wrong branch or an error
in the commits that is more easily fixed by changing the mailbox (e.g.
errors in the `From:` lines).

[[caveats]]
CAVEATS
-------

:git-am: 1
include::format-patch-caveats.adoc[]

HOOKS
-----
This command can run `applypatch-msg`, `pre-applypatch`,
and `post-applypatch` hooks.  See linkgit:githooks[5] for more
information.

See the `--verify`/`-n`/`--no-verify` options.

CONFIGURATION
-------------

include::includes/cmd-config-section-all.adoc[]

include::config/am.adoc[]

SEE ALSO
--------
linkgit:git-apply[1],
linkgit:git-format-patch[1].

GIT
---
Part of the linkgit:git[1] suite
