Unfortunately the color stuff isn't so portable to windows (with the commands supported by unxutils). However there is a solution to the +++ problem solved by using the color mode.
Additionally we probably don't want the leading character either. So lets use sed to get rid of it once we've matches with it:
git diff --no-ext-diff --unified=0 -a --no-prefix --output-indicator-new=% | sed -n "s/^%\(.*\)$/\1/p"
if you want deleted lines:
git diff --no-ext-diff --unified=0 -a --no-prefix --output-indicator-old=% | sed -n "s/^%\(.*\)$/\1/p"
By substituting % for + you don't have to worry about the header lines that start with +++ (b/c git doesn't use that prefix there... however that could change, this is still a porcelain command)
The prefix character must be ASCII (so no getting fancy with unicode). Given the vagaries of Windows/Linux/sed syntax. I think, the only ASCII chars that won't require escaping somewhere are: %,_~
Depending on your needs you may want to drop -a
as binary files can make a mess of things.
--exit-code
mentioned in another answer is a noop. By running thru a pipe, we only get the second exit code (tested on both Windows and Linux)