Git is a great distributed version control system that I am getting to like more and more everyday. We don't use git where I work, but for me, git works just as well as a super-powered subversion client.
I like to have git integrated with the rest of my (cmd) shell, so I use the MSysGit found here. This is as close as you can get to native git on windows. Using this, I am able to use git in powershell, cmd scripts, build scripts, or in lots of other places, without having to invoke it through something like the bash.exe that comes with cygwin.
Unfortunately, as of this writing, msysgit does not include git-send-mail (here's the issue). As I wrote before, I sometimes need to manually push patches around between the various computers I work on, and e-mail would work great for this.
Fortunately, powershell community extensions has a Send-SmtpMail cmdlet that can do the same things git-send-mail did - even more actually.
I use pobox.com for my e-mail and their smtp relay will relay mail for me, but only if I authenticate properly. As far as I know (I haven't actually tried this) git-send-mail isn't able to authenticate with my e-mail provider.
Anyway, here is what I do, in powershell, to e-mail my patches:
git format-patch -M origin
Then, to send it off:
mail -To cbilson@whereheworks.com `
-From cbilson@pobox.com `
-SmtpHost sasl.smtp.pobox.com `
-Credential (get-credential) `
-AttachmentPath *.path `
-Bcc cbilson@pobox.com `
-Body "Please apply this patch. KTHXBY"
I get the patches as attachments, save them to a folder somewhere, and just use git-am to apply them at work.
The kind of weird thing about this is that all the patches are in my gmail account and I have a folder for them. Given the baseline I started using git from, I could re-apply all those patches and get back to HEAD (I would likely want to use powershell to automate that!) So Gmail is my repo.