自分のところで確認できた方法は次の二つ。
1. lvを使う
$ git config --global core.pager "lv -c"
OOPSが出る場合は以下も設定
$ export TERM=cygwin
2. nkfを使う
$ git config --global core.pager "nkf -w | less"
^Mが残る場合は以下のように設定
$ git config --global core.pager "nkf -w | tr -d '\r' | less"
まとめ
lvの方はdiffを表示した時に、なぜか余分な改行が挿入されてしまうので、自分の環境では2がベターでした。
以前にもエントリーを書いていましたが、より良い方法が確認できたので再度書いてみました。