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