This is an old revision of the document!
A moderately (dis)organized list of features related to dealing with whitespace issues in Git, in no particular order.
Flag whitespace errors:
$ git diff --check
--ignore-space-at-eol Ignore changes in whitespace at EOL. -b, --ignore-space-change Ignore changes in amount of whitespace. This ignores whitespace at line end, and considers all other sequences of one or more whitespace characters to be equivalent. -w, --ignore-all-space Ignore whitespace when comparing lines. This ignores differences even if one line has whitespace where the other line has none. --ignore-blank-lines Ignore changes whose lines are all blank.
Recursive merge options:
ignore-space-change, ignore-all-space, ignore-space-at-eol, ignore-cr-at-eol Treats lines with the indicated type of whitespace change as unchanged for the sake of a three-way merge. Whitespace changes mixed with other changes to a line are not ignored. See also git-diff(1) -b, -w, --ignore-space-at-eol, and --ignore-cr-at-eol. · If their version only introduces whitespace changes to a line, our version is used; · If our version introduces whitespace changes but their version includes a substantial change, their version is used; · Otherwise, the merge proceeds in the usual way.
--ignore-whitespace, --whitespace=<option> These flag are passed to the git apply program (see git-apply(1)) that applies the patch. Incompatible with the --interactive option.
--ignore-space-change, --ignore-whitespace When applying a patch, ignore changes in whitespace in context lines if necessary. Context lines will preserve their whitespace, and they will not undergo whitespace fixing regardless of the value of the --whitespace option. New lines will still be fixed, though. --whitespace=<action> When applying a patch, detect a new or modified line that has whitespace errors. What are considered whitespace errors is controlled by core.whitespace configuration. By default, trailing whitespaces (including lines that solely consist of whitespaces) and a space character that is immediately followed by a tab character inside the initial indent of the line are considered whitespace errors. By default, the command outputs warning messages but applies the patch. When git-apply is used for statistics and not applying a patch, it defaults to nowarn. You can use different <action> values to control this behavior: · nowarn turns off the trailing whitespace warning. · warn outputs warnings for a few such errors, but applies the patch as-is (default). · fix outputs warnings for a few such errors, and applies the patch after fixing them (strip is a synonym --- the tool used to consider only trailing whitespace characters as errors, and the fix involved stripping them, but modern Gits do more). · error outputs warnings for a few such errors, and refuses to apply the patch. · error-all is similar to error but shows all errors.