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