how to show whitespace differences with git --word-diff?

The --word-diff-regex command allows you to specify a regex to customise the --word-diff behaviour. The common example of using a full stop (.) will give a character-by-character match since the full stop regex matches any character. When the regex is not specified the default is different depending on the file type, but usually ignores whitespace changes while also using them as word boundaries.

You could use a regex that divides lines into words as well as white space areas by using something like:

git diff --word-diff-regex="[ ]+|[^ ]+"

With a slightly tweaked version of your linked example, the problem with git diff --word-diff-regex=. can be seen:

enter image description here

While git diff --word-diff-regex="[ ]+|[^ ]+" would give you:

enter image description here


https://github.com/so-fancy/diff-so-fancy or https://coderwall.com/p/nl-bdg/more-readable-git-word-diff-on-osx may actually be a better approach, showing a github-like diff where more context is shown, but also highlighting the part that actually changed.