You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
4.1 KiB
131 lines
4.1 KiB
git-diff-tree(1) |
|
================ |
|
|
|
NAME |
|
---- |
|
git-diff-tree - Compares the content and mode of blobs found via two tree objects |
|
|
|
|
|
SYNOPSIS |
|
-------- |
|
[verse] |
|
'git diff-tree' [--stdin] [-m] [-s] [-v] [--no-commit-id] [--pretty] |
|
[-t] [-r] [-c | --cc] [--combined-all-paths] [--root] [--merge-base] |
|
[<common-diff-options>] <tree-ish> [<tree-ish>] [<path>...] |
|
|
|
DESCRIPTION |
|
----------- |
|
Compares the content and mode of the blobs found via two tree objects. |
|
|
|
If there is only one <tree-ish> given, the commit is compared with its parents |
|
(see --stdin below). |
|
|
|
Note that 'git diff-tree' can use the tree encapsulated in a commit object. |
|
|
|
OPTIONS |
|
------- |
|
include::diff-options.txt[] |
|
|
|
<tree-ish>:: |
|
The id of a tree object. |
|
|
|
<path>...:: |
|
If provided, the results are limited to a subset of files |
|
matching one of the provided pathspecs. |
|
|
|
-r:: |
|
recurse into sub-trees |
|
|
|
-t:: |
|
show tree entry itself as well as subtrees. Implies -r. |
|
|
|
--root:: |
|
When `--root` is specified the initial commit will be shown as a big |
|
creation event. This is equivalent to a diff against the NULL tree. |
|
|
|
--merge-base:: |
|
Instead of comparing the <tree-ish>s directly, use the merge |
|
base between the two <tree-ish>s as the "before" side. There |
|
must be two <tree-ish>s given and they must both be commits. |
|
|
|
--stdin:: |
|
When `--stdin` is specified, the command does not take |
|
<tree-ish> arguments from the command line. Instead, it |
|
reads lines containing either two <tree>, one <commit>, or a |
|
list of <commit> from its standard input. (Use a single space |
|
as separator.) |
|
+ |
|
When two trees are given, it compares the first tree with the second. |
|
When a single commit is given, it compares the commit with its |
|
parents. The remaining commits, when given, are used as if they are |
|
parents of the first commit. |
|
+ |
|
When comparing two trees, the ID of both trees (separated by a space |
|
and terminated by a newline) is printed before the difference. When |
|
comparing commits, the ID of the first (or only) commit, followed by a |
|
newline, is printed. |
|
+ |
|
The following flags further affect the behavior when comparing |
|
commits (but not trees). |
|
|
|
-m:: |
|
By default, 'git diff-tree --stdin' does not show |
|
differences for merge commits. With this flag, it shows |
|
differences to that commit from all of its parents. See |
|
also `-c`. |
|
|
|
-s:: |
|
By default, 'git diff-tree --stdin' shows differences, |
|
either in machine-readable form (without `-p`) or in patch |
|
form (with `-p`). This output can be suppressed. It is |
|
only useful with `-v` flag. |
|
|
|
-v:: |
|
This flag causes 'git diff-tree --stdin' to also show |
|
the commit message before the differences. |
|
|
|
include::pretty-options.txt[] |
|
|
|
--no-commit-id:: |
|
'git diff-tree' outputs a line with the commit ID when |
|
applicable. This flag suppressed the commit ID output. |
|
|
|
-c:: |
|
This flag changes the way a merge commit is displayed |
|
(which means it is useful only when the command is given |
|
one <tree-ish>, or `--stdin`). It shows the differences |
|
from each of the parents to the merge result simultaneously |
|
instead of showing pairwise diff between a parent and the |
|
result one at a time (which is what the `-m` option does). |
|
Furthermore, it lists only files which were modified |
|
from all parents. |
|
|
|
--cc:: |
|
This flag changes the way a merge commit patch is displayed, |
|
in a similar way to the `-c` option. It implies the `-c` |
|
and `-p` options and further compresses the patch output |
|
by omitting uninteresting hunks whose the contents in the parents |
|
have only two variants and the merge result picks one of them |
|
without modification. When all hunks are uninteresting, the commit |
|
itself and the commit log message is not shown, just like in any other |
|
"empty diff" case. |
|
|
|
--combined-all-paths:: |
|
This flag causes combined diffs (used for merge commits) to |
|
list the name of the file from all parents. It thus only has |
|
effect when -c or --cc are specified, and is likely only |
|
useful if filename changes are detected (i.e. when either |
|
rename or copy detection have been requested). |
|
|
|
--always:: |
|
Show the commit itself and the commit log message even |
|
if the diff itself is empty. |
|
|
|
|
|
include::pretty-formats.txt[] |
|
|
|
include::diff-format.txt[] |
|
|
|
GIT |
|
--- |
|
Part of the linkgit:git[1] suite
|
|
|