]>
Commit | Line | Data |
---|---|---|
42e2cba2 | 1 | git-am(1) |
05625af3 | 2 | ========= |
42e2cba2 PB |
3 | |
4 | NAME | |
5 | ---- | |
c3f0baac | 6 | git-am - Apply a series of patches from a mailbox |
42e2cba2 PB |
7 | |
8 | ||
9 | SYNOPSIS | |
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 | |
18 | DESCRIPTION | |
19 | ----------- | |
20 | Splits mail messages in a mailbox into commit log message, | |
21 | authorship information and patches, and applies them to the | |
22 | current branch. | |
23 | ||
baa720f5 JH |
24 | OPTIONS |
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 | + | |
48 | This was optional in prior versions of git, but now it is the | |
49 | default. 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 |
102 | DISCUSSION |
103 | ---------- | |
104 | ||
2499857b JH |
105 | The commit author name is taken from the "From: " line of the |
106 | message, and commit author time is taken from the "Date: " line | |
107 | of the message. The "Subject: " line is used as the title of | |
108 | the commit, after stripping common prefix "[PATCH <anything>]". | |
109 | It is supposed to describe what the commit is about concisely as | |
110 | a one line text. | |
111 | ||
112 | The body of the message (iow, after a blank line that terminates | |
113 | RFC2822 headers) can begin with "Subject: " and "From: " lines | |
114 | that are different from those of the mail header, to override | |
115 | the values of these fields. | |
116 | ||
117 | The commit message is formed by the title taken from the | |
118 | "Subject: ", a blank line and the body of the message up to | |
119 | where the patch begins. Excess whitespaces at the end of the | |
120 | lines are automatically stripped. | |
121 | ||
122 | The patch is expected to be inline, directly following the | |
123 | message. 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 | ||
129 | is taken as the beginning of a patch, and the commit log message | |
130 | is terminated before the first occurrence of such a line. | |
131 | ||
baa720f5 JH |
132 | When initially invoking it, you give it names of the mailboxes |
133 | to crunch. Upon seeing the first patch that does not apply, it | |
d45cc6e2 | 134 | aborts 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 | |
143 | The command refuses to process new mailboxes while `.dotest` | |
144 | directory exists, so if you decide to start over from scratch, | |
81fa1459 | 145 | run `rm -f -r .dotest` before running the command with mailbox |
baa720f5 | 146 | names. |
42e2cba2 PB |
147 | |
148 | ||
149 | SEE ALSO | |
150 | -------- | |
5162e697 | 151 | linkgit:git-apply[1]. |
42e2cba2 PB |
152 | |
153 | ||
154 | Author | |
155 | ------ | |
156 | Written by Junio C Hamano <junkio@cox.net> | |
157 | ||
158 | Documentation | |
159 | -------------- | |
160 | Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>. | |
161 | ||
42e2cba2 PB |
162 | GIT |
163 | --- | |
9e1f0a85 | 164 | Part of the linkgit:git[1] suite |