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

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


SYNOPSIS
--------
'git-am' [--signoff] [--dotest=<dir>] [--utf8] [--binary] [--3way] <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
-------
--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.

--utf8, --keep::
	Pass `--utf8` and `--keep` flags 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.

--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 '--resume' 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].


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

