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