diff options
Diffstat (limited to 'Documentation/git-am.txt')
-rw-r--r-- | Documentation/git-am.txt | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt new file mode 100644 index 000000000..b9c6fac74 --- /dev/null +++ b/Documentation/git-am.txt @@ -0,0 +1,168 @@ +git-am(1) +========= + +NAME +---- +git-am - Apply a series of patches from a mailbox + + +SYNOPSIS +-------- +[verse] +'git am' [--signoff] [--keep] [--utf8 | --no-utf8] + [--3way] [--interactive] + [--whitespace=<option>] [-C<n>] [-p<n>] + [<mbox> | <Maildir>...] +'git am' (--skip | --resolved | --abort) + +DESCRIPTION +----------- +Splits mail messages in a mailbox into commit log message, +authorship information and patches, and applies them to the +current branch. + +OPTIONS +------- +<mbox>|<Maildir>...:: + The list of mailbox files to read patches from. If you do not + supply this argument, reads from the standard input. If you supply + directories, they'll be treated as Maildirs. + +-s:: +--signoff:: + Add `Signed-off-by:` line to the commit message, using + the committer identity of yourself. + +-k:: +--keep:: + Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]). + +-u:: +--utf8:: + Pass `-u` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]). + The proposed commit log message taken from the e-mail + is re-coded into UTF-8 encoding (configuration variable + `i18n.commitencoding` can be used to specify project's + preferred encoding if it is not UTF-8). ++ +This was optional in prior versions of git, but now it is the +default. You could use `--no-utf8` to override this. + +--no-utf8:: + Pass `-n` flag to 'git-mailinfo' (see + linkgit:git-mailinfo[1]). + +-3:: +--3way:: + When the patch does not apply cleanly, fall back on + 3-way merge, if the patch records the identity of blobs + it is supposed to apply to, and we have those blobs + available locally. + +--whitespace=<option>:: + This flag is passed to the 'git-apply' (see linkgit:git-apply[1]) + program that applies + the patch. + +-C<n>:: +-p<n>:: + These flags are passed to the 'git-apply' (see linkgit:git-apply[1]) + program that applies + the patch. + +-i:: +--interactive:: + Run interactively. + +--skip:: + Skip the current patch. This is only meaningful when + restarting an aborted patch. + +-r:: +--resolved:: + After a patch failure (e.g. attempting to apply + conflicting patch), the user has applied it by hand and + the index file stores the result of the application. + Make a commit using the authorship and commit log + extracted from the e-mail message and the current index + file, and continue. + +--resolvemsg=<msg>:: + When a patch failure occurs, <msg> will be printed + to the screen before exiting. This overrides the + standard message informing you to use `--resolved` + or `--skip` to handle the failure. This is solely + for internal use between 'git-rebase' and 'git-am'. + +--abort:: + Restore the original branch and abort the patching operation. + +DISCUSSION +---------- + +The commit author name is taken from the "From: " line of the +message, and commit author time is taken from the "Date: " line +of the message. The "Subject: " line is used as the title of +the commit, after stripping common prefix "[PATCH <anything>]". +It is supposed to describe what the commit is about concisely as +a one line text. + +The body of the message (iow, after a blank line that terminates +RFC2822 headers) can begin with "Subject: " and "From: " lines +that are different from those of the mail header, to override +the values of these fields. + +The commit message is formed by the title taken from the +"Subject: ", a blank line and the body of the message up to +where the patch begins. Excess whitespaces at the end of the +lines are automatically stripped. + +The patch is expected to be inline, directly following the +message. Any line that is of form: + +* three-dashes and end-of-line, or +* a line that begins with "diff -", or +* a line that begins with "Index: " + +is taken as the beginning of a patch, and the commit log message +is terminated before the first occurrence of such a line. + +When initially invoking it, you give it names of the mailboxes +to crunch. Upon seeing the first patch that does not apply, it +aborts in the middle,. You can recover from this in one of two ways: + +. skip the current patch by re-running the command with '--skip' + option. + +. hand resolve the conflict in the working directory, and update + the index file to bring it in a state that the patch should + have produced. Then run the command with '--resolved' option. + +The command refuses to process new mailboxes while `.git/rebase-apply` +directory exists, so if you decide to start over from scratch, +run `rm -f -r .git/rebase-apply` before running the command with mailbox +names. + +Before any patches are applied, ORIG_HEAD is set to the tip of the +current branch. This is useful if you have problems with multiple +commits, like running 'git am' on the wrong branch or an error in the +commits that is more easily fixed by changing the mailbox (e.g. +errors in the "From:" lines). + + +SEE ALSO +-------- +linkgit:git-apply[1]. + + +Author +------ +Written by Junio C Hamano <gitster@pobox.com> + +Documentation +-------------- +Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>. + +GIT +--- +Part of the linkgit:git[1] suite |