]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-am.txt
t/t4202-log.sh: Add testcases
[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]
cb3a160d 13 [--3way] [--interactive]
b47dfe9e 14 [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
356a32a2 15 [<mbox> | <Maildir>...]
3e5057a8 16'git am' (--skip | --resolved | --abort)
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
8273c79a 62--whitespace=<option>::
3240240f
SB
63-C<n>::
64-p<n>::
b47dfe9e 65--directory=<dir>::
ba020ef5 66 These flags are passed to the 'git-apply' (see linkgit:git-apply[1])
870e0d61 67 program that applies
67dad687
MT
68 the patch.
69
3240240f
SB
70-i::
71--interactive::
870e0d61
FL
72 Run interactively.
73
74--skip::
75 Skip the current patch. This is only meaningful when
76 restarting an aborted patch.
baa720f5 77
3240240f
SB
78-r::
79--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
ba020ef5 92 for internal use between 'git-rebase' and 'git-am'.
5c19f244 93
3e5057a8
NS
94--abort::
95 Restore the original branch and abort the patching operation.
96
baa720f5
JH
97DISCUSSION
98----------
99
2499857b
JH
100The commit author name is taken from the "From: " line of the
101message, and commit author time is taken from the "Date: " line
102of the message. The "Subject: " line is used as the title of
103the commit, after stripping common prefix "[PATCH <anything>]".
104It is supposed to describe what the commit is about concisely as
105a one line text.
106
107The body of the message (iow, after a blank line that terminates
108RFC2822 headers) can begin with "Subject: " and "From: " lines
109that are different from those of the mail header, to override
110the values of these fields.
111
112The commit message is formed by the title taken from the
113"Subject: ", a blank line and the body of the message up to
114where the patch begins. Excess whitespaces at the end of the
115lines are automatically stripped.
116
117The patch is expected to be inline, directly following the
118message. Any line that is of form:
119
120* three-dashes and end-of-line, or
121* a line that begins with "diff -", or
122* a line that begins with "Index: "
123
124is taken as the beginning of a patch, and the commit log message
125is terminated before the first occurrence of such a line.
126
baa720f5
JH
127When initially invoking it, you give it names of the mailboxes
128to crunch. Upon seeing the first patch that does not apply, it
d45cc6e2 129aborts in the middle,. You can recover from this in one of two ways:
baa720f5 130
870e0d61 131. skip the current patch by re-running the command with '--skip'
baa720f5
JH
132 option.
133
087b6742
JH
134. hand resolve the conflict in the working directory, and update
135 the index file to bring it in a state that the patch should
1e2ccd3a 136 have produced. Then run the command with '--resolved' option.
baa720f5 137
51ef1daa 138The command refuses to process new mailboxes while `.git/rebase-apply`
baa720f5 139directory exists, so if you decide to start over from scratch,
51ef1daa 140run `rm -f -r .git/rebase-apply` before running the command with mailbox
baa720f5 141names.
42e2cba2 142
9869099b
BG
143Before any patches are applied, ORIG_HEAD is set to the tip of the
144current branch. This is useful if you have problems with multiple
145commits, like running 'git am' on the wrong branch or an error in the
146commits that is more easily fixed by changing the mailbox (e.g.
147errors in the "From:" lines).
148
42e2cba2
PB
149
150SEE ALSO
151--------
5162e697 152linkgit:git-apply[1].
42e2cba2
PB
153
154
155Author
156------
59eb68aa 157Written by Junio C Hamano <gitster@pobox.com>
42e2cba2
PB
158
159Documentation
160--------------
161Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
162
42e2cba2
PB
163GIT
164---
9e1f0a85 165Part of the linkgit:git[1] suite