Documentation / diff-options.txton commit Run the specified perl in Documentation/ (c680dd8)
   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
   7ifndef::git-format-patch[]
   8ifndef::git-diff[]
   9:git-diff-core: 1
  10endif::git-diff[]
  11endif::git-format-patch[]
  12
  13ifdef::git-format-patch[]
  14-p::
  15        Generate patches without diffstat.
  16endif::git-format-patch[]
  17
  18ifndef::git-format-patch[]
  19-p::
  20        Generate patch (see section on generating patches).
  21        {git-diff? This is the default.}
  22endif::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
 210For more detailed explanation on these common options, see also
 211link:diffcore.html[diffcore documentation].