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

