One of the primary points I was trying to make about git is that it's going to be sort of inevitable in the free software world, so I might as well become proficient with it. And just after that, it turns out two projects I've played with (GnuTLS and reinteract) were both managed with git, and because of my familiarity I've sent patches to both of them.
For what it's worth, here's the process:
hack hack hack
git commit with a useful commit message
repeat steps 1 and 2
Dump your changes as a series of patches: git format-patch origin..
Send them along: git send-email *.patch
I still haven't quite figured out the workflow for re-merging upstream when your patches (or variants) are committed -- maybe you develop in a branch, pull, and diff again to determine whether to throw your branch away? -- so if you have any advice I'm all ears.