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] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way] 13 [--interactive] [--whitespace=<option>] <mbox>... 14'git-am' [--skip | --resolved] 15 16DESCRIPTION 17----------- 18Splits mail messages in a mailbox into commit log message, 19authorship information and patches, and applies them to the 20current branch. 21 22OPTIONS 23------- 24--signoff:: 25 Add `Signed-off-by:` line to the commit message, using 26 the committer identity of yourself. 27 28--dotest=<dir>:: 29 Instead of `.dotest` directory, use <dir> as a working 30 area to store extracted patches. 31 32--keep:: 33 Pass `-k` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]). 34 35--utf8:: 36 Pass `-u` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]). 37 The proposed commit log message taken from the e-mail 38 are re-coded into UTF-8 encoding (configuration variable 39 `i18n.commitencoding` can be used to specify project's 40 preferred encoding if it is not UTF-8). 41+ 42This was optional in prior versions of git, but now it is the 43default. You could use `--no-utf8` to override this. 44 45--no-utf8:: 46 Do not pass `-u` flag to `git-mailinfo` (see 47 gitlink:git-mailinfo[1]). 48 49--binary:: 50 Pass `--allow-binary-replacement` flag to `git-apply` 51 (see gitlink:git-apply[1]). 52 53--3way:: 54 When the patch does not apply cleanly, fall back on 55 3-way merge, if the patch records the identity of blobs 56 it is supposed to apply to, and we have those blobs 57 locally. 58 59--skip:: 60 Skip the current patch. This is only meaningful when 61 restarting an aborted patch. 62 63--whitespace=<option>:: 64 This flag is passed to the `git-apply` program that applies 65 the patch. 66 67-C<n>:: 68 This flag is passed to the `git-apply` program that applies 69 the patch. 70 71--interactive:: 72 Run interactively, just like git-applymbox. 73 74--resolved:: 75 After a patch failure (e.g. attempting to apply 76 conflicting patch), the user has applied it by hand and 77 the index file stores the result of the application. 78 Make a commit using the authorship and commit log 79 extracted from the e-mail message and the current index 80 file, and continue. 81 82DISCUSSION 83---------- 84 85When initially invoking it, you give it names of the mailboxes 86to crunch. Upon seeing the first patch that does not apply, it 87aborts in the middle, just like 'git-applymbox' does. You can 88recover from this in one of two ways: 89 90. skip the current one by re-running the command with '--skip' 91 option. 92 93. hand resolve the conflict in the working directory, and update 94 the index file to bring it in a state that the patch should 95 have produced. Then run the command with '--resolved' option. 96 97The command refuses to process new mailboxes while `.dotest` 98directory exists, so if you decide to start over from scratch, 99run `rm -f .dotest` before running the command with mailbox 100names. 101 102 103SEE ALSO 104-------- 105gitlink:git-applymbox[1], gitlink:git-applypatch[1], gitlink:git-apply[1]. 106 107 108Author 109------ 110Written by Junio C Hamano <junkio@cox.net> 111 112Documentation 113-------------- 114Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>. 115 116GIT 117--- 118Part of the gitlink:git[7] suite 119