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]
	      [<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.

--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
