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