User Tools

Site Tools


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.

git diff

Flag whitespace errors:

$ git diff --check

Other possibilities:

    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 changes whose lines are all blank.

git merge

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

    ·   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.

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.

    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
    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

    ·   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

    ·   error-all is similar to error but shows all errors.
git_whitespace.1528715431.txt.gz · Last modified: 2018/06/11 11:10 by rpjday