1git-am(1) 2========= 3 4NAME 5---- 6git-am - Apply a series of patches from a mailbox 7 8 9SYNOPSIS 10-------- 11[verse] 12'git am' [--signoff] [--keep] [--utf8 | --no-utf8] 13 [--3way] [--interactive] [--committer-date-is-author-date] 14 [--ignore-date] [--ignore-space-change | --ignore-whitespace] 15 [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>] 16 [--reject] [-q | --quiet] 17 [<mbox> | <Maildir>...] 18'git am' (--skip | --resolved | --abort) 19 20DESCRIPTION 21----------- 22Splits mail messages in a mailbox into commit log message, 23authorship information and patches, and applies them to the 24current branch. 25 26OPTIONS 27------- 28<mbox>|<Maildir>...:: 29 The list of mailbox files to read patches from. If you do not 30 supply this argument, the command reads from the standard input. 31 If you supply directories, they will be treated as Maildirs. 32 33-s:: 34--signoff:: 35 Add a `Signed-off-by:` line to the commit message, using 36 the committer identity of yourself. 37 38-k:: 39--keep:: 40 Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]). 41 42-q:: 43--quiet:: 44 Be quiet. Only print error messages. 45 46-u:: 47--utf8:: 48 Pass `-u` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]). 49 The proposed commit log message taken from the e-mail 50 is re-coded into UTF-8 encoding (configuration variable 51 `i18n.commitencoding` can be used to specify project's 52 preferred encoding if it is not UTF-8). 53+ 54This was optional in prior versions of git, but now it is the 55default. You can use `--no-utf8` to override this. 56 57--no-utf8:: 58 Pass `-n` flag to 'git-mailinfo' (see 59 linkgit:git-mailinfo[1]). 60 61-3:: 62--3way:: 63 When the patch does not apply cleanly, fall back on 64 3-way merge if the patch records the identity of blobs 65 it is supposed to apply to and we have those blobs 66 available locally. 67 68--ignore-date:: 69--ignore-space-change:: 70--ignore-whitespace:: 71--whitespace=<option>:: 72-C<n>:: 73-p<n>:: 74--directory=<dir>:: 75--reject:: 76 These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) 77 program that applies 78 the patch. 79 80-i:: 81--interactive:: 82 Run interactively. 83 84--committer-date-is-author-date:: 85 By default the command records the date from the e-mail 86 message as the commit author date, and uses the time of 87 commit creation as the committer date. This allows the 88 user to lie about the committer date by using the same 89 value as the author date. 90 91--ignore-date:: 92 By default the command records the date from the e-mail 93 message as the commit author date, and uses the time of 94 commit creation as the committer date. This allows the 95 user to lie about the author date by using the same 96 value as the committer date. 97 98--skip:: 99 Skip the current patch. This is only meaningful when 100 restarting an aborted patch. 101 102-r:: 103--resolved:: 104 After a patch failure (e.g. attempting to apply 105 conflicting patch), the user has applied it by hand and 106 the index file stores the result of the application. 107 Make a commit using the authorship and commit log 108 extracted from the e-mail message and the current index 109 file, and continue. 110 111--resolvemsg=<msg>:: 112 When a patch failure occurs, <msg> will be printed 113 to the screen before exiting. This overrides the 114 standard message informing you to use `--resolved` 115 or `--skip` to handle the failure. This is solely 116 for internal use between 'git-rebase' and 'git-am'. 117 118--abort:: 119 Restore the original branch and abort the patching operation. 120 121DISCUSSION 122---------- 123 124The commit author name is taken from the "From: " line of the 125message, and commit author date is taken from the "Date: " line 126of the message. The "Subject: " line is used as the title of 127the commit, after stripping common prefix "[PATCH <anything>]". 128The "Subject: " line is supposed to concisely describe what the 129commit is about in one line of text. 130 131"From: " and "Subject: " lines starting the body (the rest of the 132message after the blank line terminating the RFC2822 headers) 133override the respective commit author name and title values taken 134from the headers. 135 136The commit message is formed by the title taken from the 137"Subject: ", a blank line and the body of the message up to 138where the patch begins. Excess whitespace at the end of each 139line is automatically stripped. 140 141The patch is expected to be inline, directly following the 142message. Any line that is of the form: 143 144* three-dashes and end-of-line, or 145* a line that begins with "diff -", or 146* a line that begins with "Index: " 147 148is taken as the beginning of a patch, and the commit log message 149is terminated before the first occurrence of such a line. 150 151When initially invoking `git am`, you give it the names of the mailboxes 152to process. Upon seeing the first patch that does not apply, it 153aborts in the middle. You can recover from this in one of two ways: 154 155. skip the current patch by re-running the command with the '--skip' 156 option. 157 158. hand resolve the conflict in the working directory, and update 159 the index file to bring it into a state that the patch should 160 have produced. Then run the command with the '--resolved' option. 161 162The command refuses to process new mailboxes while the `.git/rebase-apply` 163directory exists, so if you decide to start over from scratch, 164run `rm -f -r .git/rebase-apply` before running the command with mailbox 165names. 166 167Before any patches are applied, ORIG_HEAD is set to the tip of the 168current branch. This is useful if you have problems with multiple 169commits, like running 'git am' on the wrong branch or an error in the 170commits that is more easily fixed by changing the mailbox (e.g. 171errors in the "From:" lines). 172 173 174SEE ALSO 175-------- 176linkgit:git-apply[1]. 177 178 179Author 180------ 181Written by Junio C Hamano <gitster@pobox.com> 182 183Documentation 184-------------- 185Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>. 186 187GIT 188--- 189Part of the linkgit:git[1] suite