By default git diff prints all +- lines to the stdout however I have a (devian) machine (which I connect through ssh) where git diff leads
The following core.pager value uses less, which prints to stdout, and also has pager functionality (if required), enabling scrolling up and down (unlike cat):
$ git config --global core.pager "less -FRSX"
It immediately quits if the diff fits on the first screen (-F), outputs raw control characters (-R), chops long lines rather than wrapping (-S), and does not use termcap init/deinit strings (-X).