.SH "SYNOPSIS"
.nf
-git\-am [\-\-signoff] [\-\-dotest=<dir>] [\-\-utf8] [\-\-binary] [\-\-3way] <mbox>...
-git\-am [\-\-skip | \-\-resolved]
+\fIgit\-am\fR [\-\-signoff] [\-\-dotest=<dir>] [\-\-utf8] [\-\-binary] [\-\-3way]
+ [\-\-interactive] [\-\-whitespace=<option>] <mbox>...
+\fIgit\-am\fR [\-\-skip | \-\-resolved]
.fi
.SH "DESCRIPTION"
\-\-skip
Skip the current patch\&. This is only meaningful when restarting an aborted patch\&.
+.TP
+\-\-whitespace=<option>
+This flag is passed to the git\-apply program that applies the patch\&.
+
.TP
\-\-interactive
Run interactively, just like git\-applymbox\&.
.SH "DISCUSSION"
-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, just like git\-applymbox does\&. You can recover from this in one of two ways:
+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, just like \fIgit\-applymbox\fR does\&. You can recover from this in one of two ways:
.TP 3
1.
-skip the current one by re\-running the command with \-\-skip option\&.
+skip the current one by re\-running the command with \fI\-\-skip\fR option\&.
.TP
2.
-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\&.
+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 \fI\-\-resolved\fR option\&.
.LP
.SH "SEE ALSO"
-\fBgit\-applymbox\fR(1), \fBgit\-applypatch\fR(1)\&.
+\fBgit\-applymbox\fR(1), \fBgit\-applypatch\fR(1), \fBgit\-apply\fR(1)\&.
.SH "AUTHOR"
.SH "SYNOPSIS"
.nf
-git\-apply [\-\-stat] [\-\-numstat] [\-\-summary] [\-\-check] [\-\-index] [\-\-apply]
+\fIgit\-apply\fR [\-\-stat] [\-\-numstat] [\-\-summary] [\-\-check] [\-\-index] [\-\-apply]
[\-\-no\-add] [\-\-index\-info] [\-\-allow\-binary\-replacement] [\-z] [\-pNUM]
+ [\-\-whitespace=<nowarn|warn|error|error\-all|strip>]
[<patch>...]
.fi
.TP
<patch>...
-The files to read patch from\&. \- can be used to read from the standard input\&.
+The files to read patch from\&. \fI\-\fR can be used to read from the standard input\&.
.TP
\-\-stat
.TP
\-\-index\-info
-Newer git\-diff output has embedded index information for each blob to help identify the original version that the patch applies to\&. When this flag is given, and if the original version of the blob is available locally, outputs information about them to the standard output\&.
+Newer git\-diff output has embedded \fIindex information\fR for each blob to help identify the original version that the patch applies to\&. When this flag is given, and if the original version of the blob is available locally, outputs information about them to the standard output\&.
.TP
\-z
.TP
\-\-apply
-If you use any of the options marked “Turns off "apply"” above, git\-apply reads and outputs the information you asked without actually applying the patch\&. Give this flag after those flags to also apply the patch\&.
+If you use any of the options marked “Turns off "apply"” above, git\-apply reads and outputs the information you asked without actually applying the patch\&. Give this flag after those flags to also apply the patch\&.
.TP
\-\-no\-add
\-\-allow\-binary\-replacement
When applying a patch, which is a git\-enhanced patch that was prepared to record the pre\- and post\-image object name in full, and the path being patched exactly matches the object the patch applies to (i\&.e\&. "index" line's pre\-image object name is what is in the working tree), and the post\-image object is available in the object database, use the post\-image object as the patch result\&. This allows binary files to be patched in a very limited way\&.
+.TP
+\-\-whitespace=<option>
+When applying a patch, detect a new or modified line that ends with trailing whitespaces (this includes a line that solely consists of whitespaces)\&. By default, the command outputs warning messages and applies the patch\&. When git\-apply is used for statistics and not applying a patch, it defaults to nowarn\&. You can use different <option> to control this behaviour:
+
+.RS
+.TP 3
+\(bu
+ nowarn turns off the trailing whitespace warning\&.
+.TP
+\(bu
+ warn outputs warnings for a few such errors, but applies the patch (default)\&.
+.TP
+\(bu
+ error outputs warnings for a few such errors, and refuses to apply the patch\&.
+.TP
+\(bu
+ error\-all is similar to error but shows all errors\&.
+.TP
+\(bu
+ strip outputs warnings for a few such errors, strips out the trailing whitespaces and applies the patch\&.
+.LP
+.RE
+.IP
+
+.SH "CONFIGURATION"
+
+.TP
+apply\&.whitespace
+When no \-\-whitespace flag is given from the command line, this configuration item is used as the default\&.
+
.SH "AUTHOR"
.SH "SYNOPSIS"
-git\-read\-tree (<tree\-ish> | [[\-m | \-\-reset] [\-u | \-i]] <tree\-ish1> [<tree\-ish2> [<tree\-ish3>]])
+\fIgit\-read\-tree\fR (<tree\-ish> | [[\-m [\-\-aggressive]| \-\-reset] [\-u | \-i]] <tree\-ish1> [<tree\-ish2> [<tree\-ish3>]])
.SH "DESCRIPTION"
-Reads the tree information given by <tree\-ish> into the index, but does not actually update any of the files it "caches"\&. (see: \fBgit\-checkout\-index\fR(1))
+Reads the tree information given by <tree\-ish> into the index, but does not actually \fIupdate\fR any of the files it "caches"\&. (see: \fBgit\-checkout\-index\fR(1))
Optionally, it can merge a tree into the index, perform a fast\-forward (i\&.e\&. 2\-way) merge, or a 3\-way merge, with the \-m flag\&. When used with \-m, the \-u flag causes it to also update the files in the work tree with the result of the merge\&.
\-i
Usually a merge requires the index file as well as the files in the working tree are up to date with the current head commit, in order not to lose local changes\&. This flag disables the check with the working tree and is meant to be used when creating a merge of trees that are not directly related to the current working tree status into a temporary index file\&.
+.TP
+\-\-aggressive
+Usually a three\-way merge by git\-read\-tree resolves the merge for really trivial cases and leaves other cases unresolved in the index, so that Porcelains can implement different merge policies\&. This flag makes the command to resolve a few more cases internally:
+
+.RS
+.TP 3
+\(bu
+when one side removes a path and the other side leaves the path unmodified\&. The resolution is to remove that path\&.
+.TP
+\(bu
+when both sides remove a path\&. The resolution is to remove that path\&.
+.TP
+\(bu
+when both sides adds a path identically\&. The resolution is to add that path\&.
+.LP
+.RE
+.IP
+
.TP
<tree\-ish#>
The id of the tree object(s) to be read/merged\&.
However, if you have local changes in the working tree that would be overwritten by this merge,git\-read\-tree will refuse to run to prevent your changes from being lost\&.
-In other words, there is no need to worry about what exists only in the working tree\&. When you have local changes in a part of the project that is not involved in the merge, your changes do not interfere with the merge, and are kept intact\&. When they do interfere, the merge does not even start (git\-read\-tree complains loudly and fails without modifying anything)\&. In such a case, you can simply continue doing what you were in the middle of doing, and when your working tree is ready (i\&.e\&. you have finished your work\-in\-progress), attempt the merge again\&.
+In other words, there is no need to worry about what exists only in the working tree\&. When you have local changes in a part of the project that is not involved in the merge, your changes do not interfere with the merge, and are kept intact\&. When they \fIdo\fR interfere, the merge does not even start (git\-read\-tree complains loudly and fails without modifying anything)\&. In such a case, you can simply continue doing what you were in the middle of doing, and when your working tree is ready (i\&.e\&. you have finished your work\-in\-progress), attempt the merge again\&.
.SH "SEE ALSO"
.SH "SYNOPSIS"
.nf
-git\-rev\-list [ \-\-max\-count=number ]
+\fIgit\-rev\-list\fR [ \-\-max\-count=number ]
[ \-\-max\-age=timestamp ]
[ \-\-min\-age=timestamp ]
[ \-\-sparse ]
[ \-\-all ]
[ [ \-\-merge\-order [ \-\-show\-breaks ] ] | [ \-\-topo\-order ] ]
[ \-\-parents ]
- [ \-\-objects [ \-\-unpacked ] ]
+ [ [\-\-objects | \-\-objects\-edge] [ \-\-unpacked ] ]
[ \-\-pretty | \-\-header ]
[ \-\-bisect ]
<commit>... [ \-\- <paths>... ]
Lists commit objects in reverse chronological order starting at the given commit(s), taking ancestry relationship into account\&. This is useful to produce human\-readable log output\&.
-Commits which are stated with a preceding ^ cause listing to stop at that point\&. Their parents are implied\&. "git\-rev\-list foo bar ^baz" thus means "list all the commits which are included in foo and bar, but not in baz"\&.
+Commits which are stated with a preceding \fI^\fR cause listing to stop at that point\&. Their parents are implied\&. "git\-rev\-list foo bar ^baz" thus means "list all the commits which are included in \fIfoo\fR and \fIbar\fR, but not in \fIbaz\fR"\&.
A special notation <commit1>\&.\&.<commit2> can be used as a short\-hand for ^<commit1> <commit2>\&.
.TP
\-\-objects
-Print the object IDs of any object referenced by the listed commits\&. git\-rev\-list \-\-objects foo ^bar thus means "send me all object IDs which I need to download if I have the commit object bar, but not foo"\&.
+Print the object IDs of any object referenced by the listed commits\&. \fIgit\-rev\-list \-\-objects foo ^bar\fR thus means "send me all object IDs which I need to download if I have the commit object \fIbar\fR, but not \fIfoo\fR"\&.
+
+.TP
+\-\-objects\-edge
+Similar to \-\-objects, but also print the IDs of excluded commits refixed with a \- character\&. This is used by git\-pack\-objects to build \fIthin\fR pack, which records objects in deltified form based on objects contained in these excluded commits to reduce network traffic\&.
.TP
\-\-unpacked
.TP
\-\-bisect
-Limit output to the one commit object which is roughly halfway between the included and excluded commits\&. Thus, if git\-rev\-list \-\-bisect foo bar baz outputs midpoint, the output of git\-rev\-list foo ^midpoint and git\-rev\-list midpoint bar baz would be of roughly the same length\&. Finding the change which introduces a regression is thus reduced to a binary search: repeatedly generate and test new 'midpoint's until the commit chain is of length one\&.
+Limit output to the one commit object which is roughly halfway between the included and excluded commits\&. Thus, if \fIgit\-rev\-list \-\-bisect foo bar baz\fR outputs \fImidpoint\fR, the output of \fIgit\-rev\-list foo ^midpoint\fR and \fIgit\-rev\-list midpoint bar baz\fR would be of roughly the same length\&. Finding the change which introduces a regression is thus reduced to a binary search: repeatedly generate and test new 'midpoint's until the commit chain is of length one\&.
.TP
\-\-max\-count
Written by Linus Torvalds <torvalds@osdl\&.org>
-Original \-\-merge\-order logic by Jon Seymour <jon\&.seymour@gmail\&.com>
+Original \fI\-\-merge\-order\fR logic by Jon Seymour <jon\&.seymour@gmail\&.com>
.SH "DOCUMENTATION"