summaryrefslogtreecommitdiff
path: root/Documentation/git-am.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/git-am.txt')
-rw-r--r--Documentation/git-am.txt115
1 files changed, 75 insertions, 40 deletions
diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index b9c6fac748..4d37de639d 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] [--keep] [--utf8 | --no-utf8]
- [--3way] [--interactive]
- [--whitespace=<option>] [-C<n>] [-p<n>]
- [<mbox> | <Maildir>...]
-'git am' (--skip | --resolved | --abort)
+'git am' [--signoff] [--keep] [--keep-cr | --no-keep-cr] [--utf8 | --no-utf8]
+ [--3way] [--interactive] [--committer-date-is-author-date]
+ [--ignore-date] [--ignore-space-change | --ignore-whitespace]
+ [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
+ [--reject] [-q | --quiet] [--scissors | --no-scissors]
+ [(<mbox> | <Maildir>)...]
+'git am' (--continue | --skip | --abort)
DESCRIPTION
-----------
@@ -23,50 +25,70 @@ current branch.
OPTIONS
-------
-<mbox>|<Maildir>...::
+(<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
+ Add a `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]).
+ Pass `-k` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]).
+
+--keep-cr::
+--no-keep-cr::
+ With `--keep-cr`, call 'git mailsplit' (see linkgit:git-mailsplit[1])
+ with the same option, to prevent it from stripping CR at the end of
+ lines. `am.keepcr` configuration variable can be used to specify the
+ default behaviour. `--no-keep-cr` is useful to override `am.keepcr`.
+
+-c::
+--scissors::
+ Remove everything in body before a scissors line (see
+ linkgit:git-mailinfo[1]).
+
+--no-scissors::
+ Ignore scissors lines (see linkgit:git-mailinfo[1]).
+
+-q::
+--quiet::
+ Be quiet. Only print error messages.
-u::
--utf8::
- Pass `-u` flag to 'git-mailinfo' (see linkgit:git-mailinfo[1]).
+ 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
+ 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
+ 3-way merge if the patch records the identity of blobs
+ it is supposed to apply to and we have those blobs
available locally.
+--ignore-date::
+--ignore-space-change::
+--ignore-whitespace::
--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])
+--directory=<dir>::
+--reject::
+ These flags are passed to the 'git apply' (see linkgit:git-apply[1])
program that applies
the patch.
@@ -74,10 +96,25 @@ default. You could use `--no-utf8` to override this.
--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.
+--continue::
-r::
--resolved::
After a patch failure (e.g. attempting to apply
@@ -92,7 +129,7 @@ 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.
@@ -101,24 +138,22 @@ 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 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
@@ -127,20 +162,20 @@ 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 `.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
+The command refuses to process new mailboxes until the current
+operation is finished, so if you decide to start over from scratch,
+run `git am --abort` before running the command with mailbox
names.
Before any patches are applied, ORIG_HEAD is set to the tip of the