Try
git diff --color-words HEAD HEAD^
From the docs:
--word-diff-regex=<regex>
Use to decide what a word is, instead of considering runs of non-whitespace to be a word. Also implies --word-diff
unless it was already enabled.
Every non-overlapping match of the is considered a word. Anything between these matches is considered whitespace and ignored(!) for the purposes of finding differences. You may want to append |[^[:space:]]
to your regular expression to make sure that it matches all non-whitespace characters. A match that contains a newline is silently truncated(!) at the newline.
For example, --word-diff-regex=.
will treat each character as a word and, correspondingly, show differences character by character.
The regex can also be set via a diff driver or configuration option, see gitattributes[5] or git-config[1]. Giving it explicitly overrides any diff driver or configuration setting. Diff drivers override configuration settings.
--color-words[=<regex>]
Equivalent to --word-diff=color
plus (if a regex was specified) --word-diff-regex=<regex>.
Check out a longer description of other suggestions for more powerful diffs here