This is an old revision of the document!
Overview
A moderately (dis)organized list of features related to dealing with whitespace issues in Git, in no particular order.
git diff
Flag whitespace errors:
$ git diff --check
git rebase
--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.
From man git-apply:
--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.