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