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