git-mailinfo(1)
===============

NAME
----
git-mailinfo - Extracts patch and authorship from a single e-mail message


SYNOPSIS
--------
[verse]
'git mailinfo' [-k|-b] [-u | --encoding=<encoding> | -n] [--[no-]scissors] <msg> <patch>


DESCRIPTION
-----------
Reads a single e-mail message from the standard input, and
writes the commit log message in <msg> file, and the patches in
<patch> file.  The author name, e-mail and e-mail subject are
written out to the standard output to be used by 'git am'
to create a commit.  It is usually not necessary to use this
command directly.  See linkgit:git-am[1] instead.


OPTIONS
-------
-k::
	Usually the program removes email cruft from the Subject:
	header line to extract the title line for the commit log
	message.  This option prevents this munging, and is most
	useful when used to read back 'git format-patch -k' output.
+
Specifically, the following are removed until none of them remain:
+
--
*	Leading and trailing whitespace.

*	Leading `Re:`, `re:`, and `:`.

*	Leading bracketed strings (between `[` and `]`, usually
	`[PATCH]`).
--
+
Finally, runs of whitespace are normalized to a single ASCII space
character.

-b::
	When -k is not in effect, all leading strings bracketed with '['
	and ']' pairs are stripped.  This option limits the stripping to
	only the pairs whose bracketed string contains the word "PATCH".

-u::
	The commit log message, author name and author email are
	taken from the e-mail, and after minimally decoding MIME
	transfer encoding, re-coded in the charset specified by
	i18n.commitencoding (defaulting to UTF-8) by transliterating
	them.  This used to be optional but now it is the default.
+
Note that the patch is always used as-is without charset
conversion, even with this flag.

--encoding=<encoding>::
	Similar to -u.  But when re-coding, the charset specified here is
	used instead of the one specified by i18n.commitencoding or UTF-8.

-n::
	Disable all charset re-coding of the metadata.

-m::
--message-id::
	Copy the Message-ID header at the end of the commit message.  This
	is useful in order to associate commits with mailing list discussions.

--scissors::
	Remove everything in body before a scissors line.  A line that
	mainly consists of scissors (either ">8" or "8<") and perforation
	(dash "-") marks is called a scissors line, and is used to request
	the reader to cut the message at that line.  If such a line
	appears in the body of the message before the patch, everything
	before it (including the scissors line itself) is ignored when
	this option is used.
+
This is useful if you want to begin your message in a discussion thread
with comments and suggestions on the message you are responding to, and to
conclude it with a patch submission, separating the discussion and the
beginning of the proposed commit log message with a scissors line.
+
This can be enabled by default with the configuration option mailinfo.scissors.

--no-scissors::
	Ignore scissors lines. Useful for overriding mailinfo.scissors settings.

<msg>::
	The commit log message extracted from e-mail, usually
	except the title line which comes from e-mail Subject.

<patch>::
	The patch extracted from e-mail.

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