Windows の git diff で改行コードが ^M で表示される問題を解決する (core.whitespace)

Windows のターミナル環境において、改行コードが CR+LF のファイルを編集している場合、

$ git config --global color.ui auto
$ git config --system color.diff auto

のように、git diff の出力がカラフルに表示されるようになっていると、行末の CR がうまく処理できず、^M と表示されてしまうことがあります。 このような場合は、次のように core.whitespace 設定を行っておくと ^M の表示を抑制できます。

$ git config --global core.whitespace cr-at-eol