In the magit-status window Magit shows '^M" for many things. This is on FreeBSD, which should be using newlines instead:
This is, I think, the reason the push doesn't work right. From the magit-process buffer:
git … push -v origin master^M:refs/heads/master
magit-process-connection-type
tonil
fix it?~/.gitconfig
if there is one, or.gitattributes
and the plethora of other Git configuration files where you may have accidentally specified (or forgot to specify) how Git needs to handle newlines. Unfortunately, there are just too many ways to do this and none easy to understand or find... But if this behavior is consistent between different repositories on your computer, then the chance is it's in some global config...