git-diff(1)
===========

NAME
----
git-diff - Show changes between commits, commit and working tree, etc.


SYNOPSIS
--------
'git-diff' [ --diff-options ] <ent>{0,2} [<path>...]

DESCRIPTION
-----------
Show changes between two ents, an ent and the working tree, an
ent and the index file, or the index file and the working tree.
The combination of what is compared with what is determined by
the number of ents given to the command.

* When no <ent> is given, the working tree and the index
  file is compared, using `git-diff-files`.

* When one <ent> is given, the working tree and the named
  tree is compared, using `git-diff-index`.  The option
  `--cached` can be given to compare the index file and
  the named tree.

* When two <ent>s are given, these two trees are compared
  using `git-diff-tree`.

OPTIONS
-------
--diff-options::
	'--diff-options' are passed to the `git-diff-files`,
	`git-diff-index`, and `git-diff-tree` commands.  See the
	documentation for these commands for description.

<path>...::
	The <path> arguments are also passed to `git-diff-\*`
	commands.


EXAMPLES
--------

Various ways to check your working tree::
+
------------
$ git diff <1>
$ git diff --cached <2>
$ git diff HEAD <3>

<1> changes in the working tree since your last git-update-index.
<2> changes between the index and your last commit; what you
would be committing if you run "git commit" without "-a" option.
<3> changes in the working tree since your last commit; what you
would be committing if you run "git commit -a"
------------

Comparing with arbitrary commits::
+
------------
$ git diff test <1>
$ git diff HEAD -- ./test <2>
$ git diff HEAD^ HEAD <3>

<1> instead of using the tip of the current branch, compare with the
tip of "test" branch.
<2> instead of comparing with the tip of "test" branch, compare with
the tip of the current branch, but limit the comparison to the
file "test".
<3> compare the version before the last commit and the last commit.
------------


Limiting the diff output::
+
------------
$ git diff --diff-filter=MRC <1>
$ git diff --name-status -r <2>
$ git diff arch/i386 include/asm-i386 <3>

<1> show only modification, rename and copy, but not addition
nor deletion.
<2> show only names and the nature of change, but not actual
diff output.  --name-status disables usual patch generation
which in turn also disables recursive behaviour, so without -r
you would only see the directory name if there is a change in a
file in a subdirectory.
<3> limit diff output to named subtrees.
------------

Munging the diff output::
+
------------
$ git diff --find-copies-harder -B -C <1>
$ git diff -R <2>

<1> spend extra cycles to find renames, copies and complete
rewrites (very expensive).
<2> output diff in reverse.
------------


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite

