blob: 4fb1d844133ba8350361ee67d074935805a24156 [file] [log] [blame]
git-am(1)
=========
NAME
----
git-am - Apply a series of patches from a mailbox
SYNOPSIS
--------
[verse]
'git-am' [--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way]
[--interactive] [--whitespace=<option>] [-C<n>] [-p<n>]
<mbox>...
'git-am' [--skip | --resolved]
DESCRIPTION
-----------
Splits mail messages in a mailbox into commit log message,
authorship information and patches, and applies them to the
current branch.
OPTIONS
-------
<mbox>...::
The list of mailbox files to read patches from. If you do not
supply this argument, reads from the standard input.
--signoff::
Add `Signed-off-by:` line to the commit message, using
the committer identity of yourself.
--dotest=<dir>::
Instead of `.dotest` directory, use <dir> as a working
area to store extracted patches.
--keep::
Pass `-k` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]).
--utf8::
Pass `-u` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]).
The proposed commit log message taken from the e-mail
are re-coded into UTF-8 encoding (configuration variable
`i18n.commitencoding` can be used to specify 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 could use `--no-utf8` to override this.
--no-utf8::
Do not pass `-u` flag to `git-mailinfo` (see
gitlink:git-mailinfo[1]).
--binary::
Pass `--allow-binary-replacement` flag to `git-apply`
(see gitlink:git-apply[1]).
--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
locally.
--skip::
Skip the current patch. This is only meaningful when
restarting an aborted patch.
--whitespace=<option>::
This flag is passed to the `git-apply` program that applies
the patch.
-C<n>, -p<n>::
These flag are passed to the `git-apply` program that applies
the patch.
--interactive::
Run interactively, just like git-applymbox.
--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.
DISCUSSION
----------
When initially invoking it, you give it names of the mailboxes
to crunch. Upon seeing the first patch that does not apply, it
aborts in the middle, just like 'git-applymbox' does. You can
recover from this in one of two ways:
. skip the current one by re-running the command with '--skip'
option.
. hand resolve the conflict in the working directory, and update
the index file to bring it in a state that the patch should
have produced. Then run the command with '--resolved' option.
The command refuses to process new mailboxes while `.dotest`
directory exists, so if you decide to start over from scratch,
run `rm -f .dotest` before running the command with mailbox
names.
SEE ALSO
--------
gitlink:git-applymbox[1], gitlink:git-applypatch[1], gitlink:git-apply[1].
Author
------
Written by Junio C Hamano <junkio@cox.net>
Documentation
--------------
Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
GIT
---
Part of the gitlink:git[7] suite