archive: handle commits with an empty tree
[git/jnareb-git.git] / Documentation / git-mailinfo.txt
blob97e7a8e9e7cc01bc350d57ca66e08f5ed96221de
1 git-mailinfo(1)
2 ===============
4 NAME
5 ----
6 git-mailinfo - Extracts patch and authorship from a single e-mail message
9 SYNOPSIS
10 --------
11 [verse]
12 'git mailinfo' [-k|-b] [-u | --encoding=<encoding> | -n] [--scissors] <msg> <patch>
15 DESCRIPTION
16 -----------
17 Reads a single e-mail message from the standard input, and
18 writes the commit log message in <msg> file, and the patches in
19 <patch> file.  The author name, e-mail and e-mail subject are
20 written out to the standard output to be used by 'git am'
21 to create a commit.  It is usually not necessary to use this
22 command directly.  See linkgit:git-am[1] instead.
25 OPTIONS
26 -------
27 -k::
28         Usually the program removes email cruft from the Subject:
29         header line to extract the title line for the commit log
30         message.  This option prevents this munging, and is most
31         useful when used to read back 'git format-patch -k' output.
33 Specifically, the following are removed until none of them remain:
36 *       Leading and trailing whitespace.
38 *       Leading `Re:`, `re:`, and `:`.
40 *       Leading bracketed strings (between `[` and `]`, usually
41         `[PATCH]`).
44 Finally, runs of whitespace are normalized to a single ASCII space
45 character.
47 -b::
48         When -k is not in effect, all leading strings bracketed with '['
49         and ']' pairs are stripped.  This option limits the stripping to
50         only the pairs whose bracketed string contains the word "PATCH".
52 -u::
53         The commit log message, author name and author email are
54         taken from the e-mail, and after minimally decoding MIME
55         transfer encoding, re-coded in the charset specified by
56         i18n.commitencoding (defaulting to UTF-8) by transliterating
57         them.  This used to be optional but now it is the default.
59 Note that the patch is always used as-is without charset
60 conversion, even with this flag.
62 --encoding=<encoding>::
63         Similar to -u.  But when re-coding, the charset specified here is
64         used instead of the one specified by i18n.commitencoding or UTF-8.
66 -n::
67         Disable all charset re-coding of the metadata.
69 --scissors::
70         Remove everything in body before a scissors line.  A line that
71         mainly consists of scissors (either ">8" or "8<") and perforation
72         (dash "-") marks is called a scissors line, and is used to request
73         the reader to cut the message at that line.  If such a line
74         appears in the body of the message before the patch, everything
75         before it (including the scissors line itself) is ignored when
76         this option is used.
78 This is useful if you want to begin your message in a discussion thread
79 with comments and suggestions on the message you are responding to, and to
80 conclude it with a patch submission, separating the discussion and the
81 beginning of the proposed commit log message with a scissors line.
83 This can enabled by default with the configuration option mailinfo.scissors.
85 --no-scissors::
86         Ignore scissors lines. Useful for overriding mailinfo.scissors settings.
88 <msg>::
89         The commit log message extracted from e-mail, usually
90         except the title line which comes from e-mail Subject.
92 <patch>::
93         The patch extracted from e-mail.
95 GIT
96 ---
97 Part of the linkgit:git[1] suite