]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-am.txt
documentation: 'git-mailsplit --keep-cr' is not hidden anymore
[thirdparty/git.git] / Documentation / git-am.txt
CommitLineData
42e2cba2 1git-am(1)
05625af3 2=========
42e2cba2
PB
3
4NAME
5----
c3f0baac 6git-am - Apply a series of patches from a mailbox
42e2cba2
PB
7
8
9SYNOPSIS
10--------
353ce815 11[verse]
b1889c36 12'git am' [--signoff] [--keep] [--utf8 | --no-utf8]
a79ec62d 13 [--3way] [--interactive] [--committer-date-is-author-date]
86c91f91 14 [--ignore-date] [--ignore-space-change | --ignore-whitespace]
b47dfe9e 15 [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
434a6db7 16 [--reject] [-q | --quiet] [--scissors | --no-scissors]
356a32a2 17 [<mbox> | <Maildir>...]
c8089af6 18'git am' (--continue | --skip | --abort)
42e2cba2
PB
19
20DESCRIPTION
21-----------
22Splits mail messages in a mailbox into commit log message,
23authorship information and patches, and applies them to the
24current branch.
25
baa720f5
JH
26OPTIONS
27-------
d63bd9a2 28<mbox>|<Maildir>...::
d4144612 29 The list of mailbox files to read patches from. If you do not
07f5746f
DM
30 supply this argument, the command reads from the standard input.
31 If you supply directories, they will be treated as Maildirs.
d4144612 32
3240240f
SB
33-s::
34--signoff::
3db964b5 35 Add a `Signed-off-by:` line to the commit message, using
baa720f5 36 the committer identity of yourself.
42e2cba2 37
3240240f
SB
38-k::
39--keep::
0b444cdb 40 Pass `-k` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
d84029b6 41
017678b4
JH
42-c::
43--scissors::
44 Remove everything in body before a scissors line (see
45 linkgit:git-mailinfo[1]).
46
434a6db7
NS
47---no-scissors::
48 Ignore scissors lines (see linkgit:git-mailinfo[1]).
49
0e987a12
SB
50-q::
51--quiet::
52 Be quiet. Only print error messages.
53
3240240f
SB
54-u::
55--utf8::
0b444cdb 56 Pass `-u` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
d84029b6 57 The proposed commit log message taken from the e-mail
870e0d61 58 is re-coded into UTF-8 encoding (configuration variable
d84029b6
JH
59 `i18n.commitencoding` can be used to specify project's
60 preferred encoding if it is not UTF-8).
61+
62This was optional in prior versions of git, but now it is the
07f5746f 63default. You can use `--no-utf8` to override this.
d84029b6
JH
64
65--no-utf8::
0b444cdb 66 Pass `-n` flag to 'git mailinfo' (see
5162e697 67 linkgit:git-mailinfo[1]).
baa720f5 68
3240240f
SB
69-3::
70--3way::
baa720f5 71 When the patch does not apply cleanly, fall back on
07f5746f
DM
72 3-way merge if the patch records the identity of blobs
73 it is supposed to apply to and we have those blobs
870e0d61 74 available locally.
baa720f5 75
86c91f91
GB
76--ignore-date::
77--ignore-space-change::
78--ignore-whitespace::
8273c79a 79--whitespace=<option>::
3240240f
SB
80-C<n>::
81-p<n>::
b47dfe9e 82--directory=<dir>::
b80da424 83--reject::
0b444cdb 84 These flags are passed to the 'git apply' (see linkgit:git-apply[1])
870e0d61 85 program that applies
67dad687
MT
86 the patch.
87
3240240f
SB
88-i::
89--interactive::
870e0d61
FL
90 Run interactively.
91
a79ec62d
NS
92--committer-date-is-author-date::
93 By default the command records the date from the e-mail
94 message as the commit author date, and uses the time of
95 commit creation as the committer date. This allows the
96 user to lie about the committer date by using the same
e77063fc 97 value as the author date.
a79ec62d
NS
98
99--ignore-date::
100 By default the command records the date from the e-mail
101 message as the commit author date, and uses the time of
102 commit creation as the committer date. This allows the
e77063fc
SB
103 user to lie about the author date by using the same
104 value as the committer date.
a79ec62d 105
870e0d61
FL
106--skip::
107 Skip the current patch. This is only meaningful when
108 restarting an aborted patch.
baa720f5 109
c8089af6 110--continue::
3240240f
SB
111-r::
112--resolved::
087b6742
JH
113 After a patch failure (e.g. attempting to apply
114 conflicting patch), the user has applied it by hand and
115 the index file stores the result of the application.
116 Make a commit using the authorship and commit log
117 extracted from the e-mail message and the current index
118 file, and continue.
baa720f5 119
5c19f244
AR
120--resolvemsg=<msg>::
121 When a patch failure occurs, <msg> will be printed
122 to the screen before exiting. This overrides the
123 standard message informing you to use `--resolved`
124 or `--skip` to handle the failure. This is solely
0b444cdb 125 for internal use between 'git rebase' and 'git am'.
5c19f244 126
3e5057a8
NS
127--abort::
128 Restore the original branch and abort the patching operation.
129
baa720f5
JH
130DISCUSSION
131----------
132
2499857b 133The commit author name is taken from the "From: " line of the
e77063fc 134message, and commit author date is taken from the "Date: " line
2499857b
JH
135of the message. The "Subject: " line is used as the title of
136the commit, after stripping common prefix "[PATCH <anything>]".
3db964b5
SB
137The "Subject: " line is supposed to concisely describe what the
138commit is about in one line of text.
2499857b 139
f43c97f5
NS
140"From: " and "Subject: " lines starting the body override the respective
141commit author name and title values taken from the headers.
2499857b
JH
142
143The commit message is formed by the title taken from the
144"Subject: ", a blank line and the body of the message up to
3db964b5
SB
145where the patch begins. Excess whitespace at the end of each
146line is automatically stripped.
2499857b
JH
147
148The patch is expected to be inline, directly following the
07f5746f 149message. Any line that is of the form:
2499857b
JH
150
151* three-dashes and end-of-line, or
152* a line that begins with "diff -", or
153* a line that begins with "Index: "
154
155is taken as the beginning of a patch, and the commit log message
156is terminated before the first occurrence of such a line.
157
3db964b5 158When initially invoking `git am`, you give it the names of the mailboxes
07f5746f
DM
159to process. Upon seeing the first patch that does not apply, it
160aborts in the middle. You can recover from this in one of two ways:
baa720f5 161
07f5746f 162. skip the current patch by re-running the command with the '--skip'
baa720f5
JH
163 option.
164
087b6742 165. hand resolve the conflict in the working directory, and update
07f5746f
DM
166 the index file to bring it into a state that the patch should
167 have produced. Then run the command with the '--resolved' option.
baa720f5 168
07f5746f 169The command refuses to process new mailboxes while the `.git/rebase-apply`
baa720f5 170directory exists, so if you decide to start over from scratch,
51ef1daa 171run `rm -f -r .git/rebase-apply` before running the command with mailbox
baa720f5 172names.
42e2cba2 173
9869099b
BG
174Before any patches are applied, ORIG_HEAD is set to the tip of the
175current branch. This is useful if you have problems with multiple
176commits, like running 'git am' on the wrong branch or an error in the
177commits that is more easily fixed by changing the mailbox (e.g.
178errors in the "From:" lines).
179
42e2cba2
PB
180
181SEE ALSO
182--------
5162e697 183linkgit:git-apply[1].
42e2cba2
PB
184
185
186Author
187------
59eb68aa 188Written by Junio C Hamano <gitster@pobox.com>
42e2cba2
PB
189
190Documentation
191--------------
192Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
193
42e2cba2
PB
194GIT
195---
9e1f0a85 196Part of the linkgit:git[1] suite