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