Name

diff

Synopsis

git diff first-commit [second-commit] [-- path ...]
git diff --cached [first-commit] [-- path ...]

Show the differences between two revisions. If paths are specified, restricts the comparison to only the given files or directories.

The default first-commit is HEAD.

The default second-commit is normally the work tree. With --cached, the default second-commit is the index.

Options

--name-only
--name-status
--stat (show diffstat instead of patch)
-a, --text
-M (detect renames)
-C (detect copies and renames)
--find-copies-harder
-R (reverse patch)
-w, --ignore-all-space
--exit-code
-Un, --unified=n

Examples

To see which changes are already staged in the index:

$ git diff --cached

To see which changes are in the work tree but not yet staged:

$ git diff

To see a summary of changes between two tags (v1.1 and v2.0):

$ git diff --stat v1.1 v2.0

To see the changes between v1.1 and the current work tree:

$ git diff v1.1

To see the changes between v1.1 and HEAD:

$ git diff v1.1 HEAD

Get Linux in a Nutshell, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.