summaryrefslogtreecommitdiff
path: root/Documentation/git-am.txt
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-11-10 09:05:31 -0800
committerJunio C Hamano <gitster@pobox.com>2011-11-10 09:05:31 -0800
commit77f143bf3e218857ec8e5244d7e862e8e0c1a041 (patch)
tree9f720e61941241b53a4f258d0dc62e5a9a360aa8 /Documentation/git-am.txt
parentcd9519bd2c5c666cfb3ec219ee0b47c83f26f3fe (diff)
parent633e3556ccbcc7e443f5e9194c4a830181696ef0 (diff)
downloadgit-77f143bf3e218857ec8e5244d7e862e8e0c1a041.tar.gz
Merge 'build-in git-mktree'
* commit '633e3556ccbc': (5835 commits) build-in git-mktree allow -t abbreviation for --track in git branch gitweb: Remove function prototypes (cleanup) Documentation: cloning to empty directory is allowed Clarify kind of conflict in merge-one-file helper git config: clarify --add and --get-color archive-tar.c: squelch a type mismatch warning Start 1.6.4 development Start 1.6.3.1 maintenance series. GIT 1.6.3 t4029: use sh instead of bash t4200: convert sed expression which operates on non-text file to perl t4200: remove two unnecessary lines t/annotate-tests.sh: avoid passing a non-newline terminated file to sed t4118: avoid sed invocation on file without terminating newline t4118: add missing '&&' t8005: use egrep when extended regular expressions are required git-clean doc: the command only affects paths under $(cwd) improve error message in config.c t4018-diff-funcname: add cpp xfuncname pattern to syntax test ...
Diffstat (limited to 'Documentation/git-am.txt')
-rw-r--r--Documentation/git-am.txt136
1 files changed, 79 insertions, 57 deletions
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index e4a6b3a6f0..6d92cbee64 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -9,11 +9,13 @@ git-am - Apply a series of patches from a mailbox
SYNOPSIS
--------
[verse]
-'git-am' [--signoff] [--dotest=<dir>] [--keep] [--utf8 | --no-utf8]
- [--3way] [--interactive] [--binary]
- [--whitespace=<option>] [-C<n>] [-p<n>]
- <mbox>|<Maildir>...
-'git-am' [--skip | --resolved]
+'git am' [--signoff] [--keep] [--utf8 | --no-utf8]
+ [--3way] [--interactive] [--committer-date-is-author-date]
+ [--ignore-date]
+ [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
+ [--reject]
+ [<mbox> | <Maildir>...]
+'git am' (--skip | --resolved | --abort)
DESCRIPTION
-----------
@@ -25,62 +27,73 @@ 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.
+ supply this argument, the command reads from the standard input.
+ If you supply directories, they will be treated as Maildirs.
--s, --signoff::
- Add `Signed-off-by:` line to the commit message, using
+-s::
+--signoff::
+ Add a `Signed-off-by:` line to the commit message, using
the committer identity of yourself.
--d=<dir>, --dotest=<dir>::
- Instead of `.dotest` directory, use <dir> as a working
- area to store extracted patches.
+-k::
+--keep::
+ Pass `-k` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
--k, --keep::
- Pass `-k` flag to `git-mailinfo` (see gitlink:git-mailinfo[1]).
-
--u, --utf8::
- Pass `-u` flag to `git-mailinfo` (see gitlink: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.
+default. You can use `--no-utf8` to override this.
--no-utf8::
- Pass `-n` flag to `git-mailinfo` (see
- gitlink:git-mailinfo[1]).
+ Pass `-n` flag to 'git-mailinfo' (see
+ linkgit:git-mailinfo[1]).
--3, --3way::
+-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
+ 3-way merge if the patch records the identity of blobs
+ it is supposed to apply to and we have those blobs
available locally.
--b, --binary::
- Pass `--allow-binary-replacement` flag to `git-apply`
- (see gitlink:git-apply[1]).
-
--whitespace=<option>::
- This flag is passed to the `git-apply` (see gitlink:git-apply[1])
- program that applies
- the patch.
-
--C<n>, -p<n>::
- These flags are passed to the `git-apply` (see gitlink:git-apply[1])
+-C<n>::
+-p<n>::
+--directory=<dir>::
+--reject::
+ These flags are passed to the 'git-apply' (see linkgit:git-apply[1])
program that applies
the patch.
--i, --interactive::
+-i::
+--interactive::
Run interactively.
+--committer-date-is-author-date::
+ By default the command records the date from the e-mail
+ message as the commit author date, and uses the time of
+ commit creation as the committer date. This allows the
+ user to lie about the committer date by using the same
+ value as the author date.
+
+--ignore-date::
+ By default the command records the date from the e-mail
+ message as the commit author date, and uses the time of
+ commit creation as the committer date. This allows the
+ user to lie about the author date by using the same
+ value as the committer date.
+
--skip::
Skip the current patch. This is only meaningful when
restarting an aborted patch.
--r, --resolved::
+-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.
@@ -93,30 +106,33 @@ default. You could use `--no-utf8` to override this.
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`.
+ 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
+message, and commit author date 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 "Subject: " line is supposed to concisely describe what the
+commit is about in one line of 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.
+"From: " and "Subject: " lines starting the body (the rest of the
+message after the blank line terminating the RFC2822 headers)
+override the respective commit author name and title values taken
+from the headers.
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.
+where the patch begins. Excess whitespace at the end of each
+line is automatically stripped.
The patch is expected to be inline, directly following the
-message. Any line that is of form:
+message. Any line that is of the form:
* three-dashes and end-of-line, or
* a line that begins with "diff -", or
@@ -125,31 +141,37 @@ message. Any line that is of form:
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:
+When initially invoking `git am`, you give it the names of the mailboxes
+to process. 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'
+. skip the current patch by re-running the command with the '--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 index file to bring it into a state that the patch should
+ have produced. Then run the command with the '--resolved' option.
-The command refuses to process new mailboxes while `.dotest`
+The command refuses to process new mailboxes while the `.git/rebase-apply`
directory exists, so if you decide to start over from scratch,
-run `rm -f .dotest` before running the command with mailbox
+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
--------
-gitlink:git-apply[1].
+linkgit:git-apply[1].
Author
------
-Written by Junio C Hamano <junkio@cox.net>
+Written by Junio C Hamano <gitster@pobox.com>
Documentation
--------------
@@ -157,4 +179,4 @@ Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.o
GIT
---
-Part of the gitlink:git[7] suite
+Part of the linkgit:git[1] suite