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