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