about summary refs log tree commit diff
path: root/Documentation/git-diff-tree.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/git-diff-tree.txt')
-rw-r--r--Documentation/git-diff-tree.txt126
1 files changed, 126 insertions, 0 deletions
diff --git a/Documentation/git-diff-tree.txt b/Documentation/git-diff-tree.txt
new file mode 100644
index 000000000000..5c8a2a5e9755
--- /dev/null
+++ b/Documentation/git-diff-tree.txt
@@ -0,0 +1,126 @@
+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