Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 1 | git-diff(1) |
| 2 | =========== |
| 3 | |
| 4 | NAME |
| 5 | ---- |
Junio C Hamano | 0107892 | 2006-03-10 00:31:47 | [diff] [blame] | 6 | git-diff - Show changes between commits, commit and working tree, etc |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 7 | |
| 8 | |
| 9 | SYNOPSIS |
| 10 | -------- |
Junio C Hamano | 51c2ab0 | 2006-07-09 20:38:54 | [diff] [blame] | 11 | 'git-diff' [ --diff-options ] <tree-ish>{0,2} [<path>...] |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 12 | |
| 13 | DESCRIPTION |
| 14 | ----------- |
Junio C Hamano | 51c2ab0 | 2006-07-09 20:38:54 | [diff] [blame] | 15 | Show changes between two trees, a tree and the working tree, a |
| 16 | tree and the index file, or the index file and the working tree. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 17 | The combination of what is compared with what is determined by |
Junio C Hamano | 51c2ab0 | 2006-07-09 20:38:54 | [diff] [blame] | 18 | the number of trees given to the command. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 19 | |
Junio C Hamano | 51c2ab0 | 2006-07-09 20:38:54 | [diff] [blame] | 20 | * When no <tree-ish> is given, the working tree and the index |
| 21 | file are compared, using `git-diff-files`. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 22 | |
Junio C Hamano | 51c2ab0 | 2006-07-09 20:38:54 | [diff] [blame] | 23 | * When one <tree-ish> is given, the working tree and the named |
| 24 | tree are compared, using `git-diff-index`. The option |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 25 | `--cached` can be given to compare the index file and |
| 26 | the named tree. |
| 27 | |
Junio C Hamano | 51c2ab0 | 2006-07-09 20:38:54 | [diff] [blame] | 28 | * When two <tree-ish>s are given, these two trees are compared |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 29 | using `git-diff-tree`. |
| 30 | |
| 31 | OPTIONS |
| 32 | ------- |
| 33 | --diff-options:: |
| 34 | '--diff-options' are passed to the `git-diff-files`, |
| 35 | `git-diff-index`, and `git-diff-tree` commands. See the |
| 36 | documentation for these commands for description. |
| 37 | |
| 38 | <path>...:: |
| 39 | The <path> arguments are also passed to `git-diff-\*` |
| 40 | commands. |
| 41 | |
| 42 | |
| 43 | EXAMPLES |
| 44 | -------- |
| 45 | |
| 46 | Various ways to check your working tree:: |
| 47 | + |
| 48 | ------------ |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 49 | $ git diff <1> |
| 50 | $ git diff --cached <2> |
| 51 | $ git diff HEAD <3> |
| 52 | ------------ |
| 53 | + |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 54 | <1> changes in the working tree since your last git-update-index. |
| 55 | <2> changes between the index and your last commit; what you |
| 56 | would be committing if you run "git commit" without "-a" option. |
| 57 | <3> changes in the working tree since your last commit; what you |
| 58 | would be committing if you run "git commit -a" |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 59 | |
| 60 | Comparing with arbitrary commits:: |
| 61 | + |
| 62 | ------------ |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 63 | $ git diff test <1> |
| 64 | $ git diff HEAD -- ./test <2> |
| 65 | $ git diff HEAD^ HEAD <3> |
| 66 | ------------ |
| 67 | + |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 68 | <1> instead of using the tip of the current branch, compare with the |
| 69 | tip of "test" branch. |
| 70 | <2> instead of comparing with the tip of "test" branch, compare with |
Junio C Hamano | 235a91e | 2006-01-07 01:13:58 | [diff] [blame] | 71 | the tip of the current branch, but limit the comparison to the |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 72 | file "test". |
| 73 | <3> compare the version before the last commit and the last commit. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 74 | |
| 75 | |
| 76 | Limiting the diff output:: |
| 77 | + |
| 78 | ------------ |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 79 | $ git diff --diff-filter=MRC <1> |
| 80 | $ git diff --name-status -r <2> |
| 81 | $ git diff arch/i386 include/asm-i386 <3> |
| 82 | ------------ |
| 83 | + |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 84 | <1> show only modification, rename and copy, but not addition |
| 85 | nor deletion. |
| 86 | <2> show only names and the nature of change, but not actual |
| 87 | diff output. --name-status disables usual patch generation |
Junio C Hamano | 341071d | 2006-06-04 07:24:48 | [diff] [blame] | 88 | which in turn also disables recursive behavior, so without -r |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 89 | you would only see the directory name if there is a change in a |
| 90 | file in a subdirectory. |
| 91 | <3> limit diff output to named subtrees. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 92 | |
| 93 | Munging the diff output:: |
| 94 | + |
| 95 | ------------ |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 96 | $ git diff --find-copies-harder -B -C <1> |
| 97 | $ git diff -R <2> |
| 98 | ------------ |
| 99 | + |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 100 | <1> spend extra cycles to find renames, copies and complete |
| 101 | rewrites (very expensive). |
| 102 | <2> output diff in reverse. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 103 | |
| 104 | |
| 105 | Author |
| 106 | ------ |
| 107 | Written by Linus Torvalds <torvalds@osdl.org> |
| 108 | |
| 109 | Documentation |
| 110 | -------------- |
| 111 | Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. |
| 112 | |
| 113 | GIT |
| 114 | --- |
| 115 | Part of the gitlink:git[7] suite |
| 116 | |