.\"Generated by db2man.xsl. Don't modify this, modify the source. .de Sh \" Subsection .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Ip \" List item .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .TH "GIT-DIFF" 1 "" "" "" .SH NAME git-diff \- Show changes between commits, commit and working tree, etc .SH "SYNOPSIS" \fIgit\-diff\fR [ \-\-diff\-options ] {0,2} [...] .SH "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\&. .TP 3 \(bu When no is given, the working tree and the index file is compared, using git\-diff\-files\&. .TP \(bu When one 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\&. .TP \(bu When two s are given, these two trees are compared using git\-diff\-tree\&. .LP .SH "OPTIONS" .TP \-\-diff\-options \fI\-\-diff\-options\fR are passed to the git\-diff\-files, git\-diff\-index, and git\-diff\-tree commands\&. See the documentation for these commands for description\&. .TP ... The arguments are also passed to git\-diff\-* commands\&. .SH "EXAMPLES" .TP Various ways to check your working tree .nf $ git diff \fB(1)\fR $ git diff \-\-cached \fB(2)\fR $ git diff HEAD \fB(3)\fR .fi .sp \fB1. \fRchanges in the working tree since your last git\-update\-index\&. .br \fB2. \fRchanges between the index and your last commit; what you would be committing if you run "git commit" without "\-a" option\&. .br \fB3. \fRchanges in the working tree since your last commit; what you would be committing if you run "git commit \-a" .br .TP Comparing with arbitrary commits .nf $ git diff test \fB(1)\fR $ git diff HEAD \-\- \&./test \fB(2)\fR $ git diff HEAD^ HEAD \fB(3)\fR .fi .sp \fB1. \fRinstead of using the tip of the current branch, compare with the tip of "test" branch\&. .br \fB2. \fRinstead of comparing with the tip of "test" branch, compare with the tip of the current branch, but limit the comparison to the file "test"\&. .br \fB3. \fRcompare the version before the last commit and the last commit\&. .br .TP Limiting the diff output .nf $ git diff \-\-diff\-filter=MRC \fB(1)\fR $ git diff \-\-name\-status \-r \fB(2)\fR $ git diff arch/i386 include/asm\-i386 \fB(3)\fR .fi .sp \fB1. \fRshow only modification, rename and copy, but not addition nor deletion\&. .br \fB2. \fRshow only names and the nature of change, but not actual diff output\&. \-\-name\-status disables usual patch generation which in turn also disables recursive behavior, so without \-r you would only see the directory name if there is a change in a file in a subdirectory\&. .br \fB3. \fRlimit diff output to named subtrees\&. .br .TP Munging the diff output .nf $ git diff \-\-find\-copies\-harder \-B \-C \fB(1)\fR $ git diff \-R \fB(2)\fR .fi .sp \fB1. \fRspend extra cycles to find renames, copies and complete rewrites (very expensive)\&. .br \fB2. \fRoutput diff in reverse\&. .br .SH "AUTHOR" Written by Linus Torvalds .SH "DOCUMENTATION" Documentation by Junio C Hamano and the git\-list \&. .SH "GIT" Part of the \fBgit\fR(7) suite