]> git.ipfire.org Git - thirdparty/git.git/blob - Documentation/diff-options.txt
Documentation: customize diff-options depending on particular command
[thirdparty/git.git] / Documentation / diff-options.txt
1 // Please don't remove this comment as asciidoc behaves badly when
2 // the first non-empty line is ifdef/ifndef. The symptom is that
3 // without this comment the <git-diff-core> attribute conditionally
4 // defined below ends up being defined unconditionally.
5 // Last checked with asciidoc 7.0.2.
6
7 ifndef::git-format-patch[]
8 ifndef::git-diff[]
9 :git-diff-core: 1
10 endif::git-diff[]
11 endif::git-format-patch[]
12
13 ifdef::git-format-patch[]
14 -p::
15 Generate patches without diffstat.
16 endif::git-format-patch[]
17
18 ifndef::git-format-patch[]
19 -p::
20 Generate patch (see section on generating patches).
21 {git-diff? This is the default.}
22 endif::git-format-patch[]
23
24 -u::
25 Synonym for "-p".
26
27 -U<n>::
28 Shorthand for "--unified=<n>".
29
30 --unified=<n>::
31 Generate diffs with <n> lines of context instead of
32 the usual three. Implies "-p".
33
34 --raw::
35 Generate the raw format.
36 {git-diff-core? This is the default.}
37
38 --patch-with-raw::
39 Synonym for "-p --raw".
40
41 --stat[=width[,name-width]]::
42 Generate a diffstat. You can override the default
43 output width for 80-column terminal by "--stat=width".
44 The width of the filename part can be controlled by
45 giving another width to it separated by a comma.
46
47 --numstat::
48 Similar to \--stat, but shows number of added and
49 deleted lines in decimal notation and pathname without
50 abbreviation, to make it more machine friendly. For
51 binary files, outputs two `-` instead of saying
52 `0 0`.
53
54 --shortstat::
55 Output only the last line of the --stat format containing total
56 number of modified files, as well as number of added and deleted
57 lines.
58
59 --summary::
60 Output a condensed summary of extended header information
61 such as creations, renames and mode changes.
62
63 --patch-with-stat::
64 Synonym for "-p --stat".
65 {git-format-patch? This is the default.}
66
67 -z::
68 NUL-line termination on output. This affects the --raw
69 output field terminator. Also output from commands such
70 as "git-log" will be delimited with NUL between commits.
71
72 --name-only::
73 Show only names of changed files.
74
75 --name-status::
76 Show only names and status of changed files.
77
78 --color::
79 Show colored diff.
80
81 --no-color::
82 Turn off colored diff, even when the configuration file
83 gives the default to color output.
84
85 --color-words::
86 Show colored word diff, i.e. color words which have changed.
87
88 --no-renames::
89 Turn off rename detection, even when the configuration
90 file gives the default to do so.
91
92 --check::
93 Warn if changes introduce trailing whitespace
94 or an indent that uses a space before a tab.
95
96 --full-index::
97 Instead of the first handful characters, show full
98 object name of pre- and post-image blob on the "index"
99 line when generating a patch format output.
100
101 --binary::
102 In addition to --full-index, output "binary diff" that
103 can be applied with "git apply".
104
105 --abbrev[=<n>]::
106 Instead of showing the full 40-byte hexadecimal object
107 name in diff-raw format output and diff-tree header
108 lines, show only handful hexdigits prefix. This is
109 independent of --full-index option above, which controls
110 the diff-patch output format. Non default number of
111 digits can be specified with --abbrev=<n>.
112
113 -B::
114 Break complete rewrite changes into pairs of delete and create.
115
116 -M::
117 Detect renames.
118
119 -C::
120 Detect copies as well as renames. See also `--find-copies-harder`.
121
122 --diff-filter=[ACDMRTUXB*]::
123 Select only files that are Added (`A`), Copied (`C`),
124 Deleted (`D`), Modified (`M`), Renamed (`R`), have their
125 type (mode) changed (`T`), are Unmerged (`U`), are
126 Unknown (`X`), or have had their pairing Broken (`B`).
127 Any combination of the filter characters may be used.
128 When `*` (All-or-none) is added to the combination, all
129 paths are selected if there is any file that matches
130 other criteria in the comparison; if there is no file
131 that matches other criteria, nothing is selected.
132
133 --find-copies-harder::
134 For performance reasons, by default, `-C` option finds copies only
135 if the original file of the copy was modified in the same
136 changeset. This flag makes the command
137 inspect unmodified files as candidates for the source of
138 copy. This is a very expensive operation for large
139 projects, so use it with caution. Giving more than one
140 `-C` option has the same effect.
141
142 -l<num>::
143 -M and -C options require O(n^2) processing time where n
144 is the number of potential rename/copy targets. This
145 option prevents rename/copy detection from running if
146 the number of rename/copy targets exceeds the specified
147 number.
148
149 -S<string>::
150 Look for differences that contain the change in <string>.
151
152 --pickaxe-all::
153 When -S finds a change, show all the changes in that
154 changeset, not just the files that contain the change
155 in <string>.
156
157 --pickaxe-regex::
158 Make the <string> not a plain string but an extended POSIX
159 regex to match.
160
161 -O<orderfile>::
162 Output the patch in the order specified in the
163 <orderfile>, which has one shell glob pattern per line.
164
165 -R::
166 Swap two inputs; that is, show differences from index or
167 on-disk file to tree contents.
168
169 --text::
170 Treat all files as text.
171
172 -a::
173 Shorthand for "--text".
174
175 --ignore-space-at-eol::
176 Ignore changes in white spaces at EOL.
177
178 --ignore-space-change::
179 Ignore changes in amount of white space. This ignores white
180 space at line end, and consider all other sequences of one or
181 more white space characters to be equivalent.
182
183 -b::
184 Shorthand for "--ignore-space-change".
185
186 --ignore-all-space::
187 Ignore white space when comparing lines. This ignores
188 difference even if one line has white space where the other
189 line has none.
190
191 -w::
192 Shorthand for "--ignore-all-space".
193
194 --exit-code::
195 Make the program exit with codes similar to diff(1).
196 That is, it exits with 1 if there were differences and
197 0 means no differences.
198
199 --quiet::
200 Disable all output of the program. Implies --exit-code.
201
202 --ext-diff::
203 Allow an external diff helper to be executed. If you set an
204 external diff driver with gitlink:gitattributes[5], you need
205 to use this option with gitlink:git-log[1] and friends.
206
207 --no-ext-diff::
208 Disallow external diff drivers.
209
210 For more detailed explanation on these common options, see also
211 link:diffcore.html[diffcore documentation].