]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-diff.txt
Refer users to git-rev-parse for revision specification syntax.
[thirdparty/git.git] / Documentation / git-diff.txt
CommitLineData
215a7ad1
JH
1git-diff(1)
2===========
7fc9d69f
JH
3
4NAME
5----
7bd7f280 6git-diff - Show changes between commits, commit and working tree, etc
7fc9d69f
JH
7
8
9SYNOPSIS
10--------
ce054545 11'git-diff' [ --diff-options ] <commit>{0,2} [--] [<path>...]
7fc9d69f
JH
12
13DESCRIPTION
14-----------
cfc01c03
ML
15Show changes between two trees, a tree and the working tree, a
16tree and the index file, or the index file and the working tree.
35ef3a4c 17
f5e6b89b 18'git-diff' [--options] [--] [<path>...]::
dfa2f22f 19
f5e6b89b
JH
20 This form is to view the changes you made relative to
21 the index (staging area for the next commit). In other
22 words, the differences are what you _could_ tell git to
23 further add to the index but you still haven't. You can
24 stage these changes by using gitlink:git-add[1].
25
26'git-diff' [--options] --cached [<commit>] [--] [<path>...]::
27
28 This form is to view the changes you staged for the next
ce054545 29 commit relative to the named <commit>. Typically you
f5e6b89b
JH
30 would want comparison with the latest commit, so if you
31 do not give <commit>, it defaults to HEAD.
32
e697e4cd 33'git-diff' [--options] <commit> [--] [<path>...]::
f5e6b89b
JH
34
35 This form is to view the changes you have in your
36 working tree relative to the named <commit>. You can
37 use HEAD to compare it with the latest commit, or a
38 branch name to compare with the tip of a different
39 branch.
40
e697e4cd 41'git-diff' [--options] <commit> <commit> [--] [<path>...]::
f5e6b89b
JH
42
43 This form is to view the changes between two <commit>,
44 for example, tips of two branches.
45
46Just in case if you are doing something exotic, it should be
47noted that all of the <commit> in the above description can be
48any <tree-ish>.
dfa2f22f 49
41a5564e
SP
50For a more complete list of ways to spell <commit>, see
51"SPECIFYING REVISIONS" section in gitlink:git-rev-parse[1].
52
7fc9d69f
JH
53
54OPTIONS
55-------
f5e6b89b 56include::diff-options.txt[]
35ef3a4c
JH
57
58<path>...::
f5e6b89b
JH
59 The <paths> parameters, when given, are used to limit
60 the diff to the named paths (you can give directory
61 names and get diff for all files under them).
7fc9d69f
JH
62
63
803f498c
JH
64EXAMPLES
65--------
66
67Various ways to check your working tree::
68+
69------------
48aeecdc 70$ git diff <1>
f2dd1c9a 71$ git diff --cached <2>
48aeecdc
SE
72$ git diff HEAD <3>
73------------
74+
f5e6b89b 75<1> changes in the working tree not yet staged for the next commit.
803f498c
JH
76<2> changes between the index and your last commit; what you
77would be committing if you run "git commit" without "-a" option.
78<3> changes in the working tree since your last commit; what you
79would be committing if you run "git commit -a"
803f498c
JH
80
81Comparing with arbitrary commits::
82+
83------------
48aeecdc
SE
84$ git diff test <1>
85$ git diff HEAD -- ./test <2>
86$ git diff HEAD^ HEAD <3>
87------------
88+
803f498c
JH
89<1> instead of using the tip of the current branch, compare with the
90tip of "test" branch.
91<2> instead of comparing with the tip of "test" branch, compare with
89438677 92the tip of the current branch, but limit the comparison to the
803f498c
JH
93file "test".
94<3> compare the version before the last commit and the last commit.
803f498c
JH
95
96
97Limiting the diff output::
98+
99------------
48aeecdc
SE
100$ git diff --diff-filter=MRC <1>
101$ git diff --name-status -r <2>
102$ git diff arch/i386 include/asm-i386 <3>
103------------
104+
803f498c
JH
105<1> show only modification, rename and copy, but not addition
106nor deletion.
107<2> show only names and the nature of change, but not actual
108diff output. --name-status disables usual patch generation
abda1ef5 109which in turn also disables recursive behavior, so without -r
803f498c
JH
110you would only see the directory name if there is a change in a
111file in a subdirectory.
112<3> limit diff output to named subtrees.
803f498c
JH
113
114Munging the diff output::
115+
116------------
48aeecdc
SE
117$ git diff --find-copies-harder -B -C <1>
118$ git diff -R <2>
119------------
120+
803f498c
JH
121<1> spend extra cycles to find renames, copies and complete
122rewrites (very expensive).
123<2> output diff in reverse.
803f498c
JH
124
125
7fc9d69f
JH
126Author
127------
128Written by Linus Torvalds <torvalds@osdl.org>
129
130Documentation
131--------------
132Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
133
134GIT
135---
a7154e91 136Part of the gitlink:git[7] suite
7fc9d69f 137