I keep my source code on a Linux machine, but I develop on Windows. The cross-platform thing is a nuisance. I mostly prefer to work in the Unix way, and make Windows cope.
msysgit seems to be the Windows git client of choice. (Cygwin is too foreign an environment). To make it play nicely with Unix systems:
Don’t ever modify line endings, just accept what’s there. Every Windows editor I use can handle Unix line endings just fine.
Don’t mess with file modes. Works around the problem that Samba doesn’t really handle Unix file modes right, particularly +x. Avoids the problem of “old mode 100755 new mode 100644”. This probably means you can’t meaningfully set file modes from Windows.
Not strictly a Windows thing, but a good idea.
These can be set via the msysgit bash shell with “git config core.filemode false”. You can see your settings with “git config -l”. There’s something confusing I don’t understand about system/global/local settings that I’m ignoring.