I have tried:
git archive HEAD --format=zip > archive.zip
:and then I email archive.zip and at the other end they unzip archive.zip into
As previous answer said, git bundle is the way.
If you want to create a bundle from using only one branch (I prefer bundling only master) and sending over e-mail, you can do something like below:
$ git bundle create /tmp/mygitbackup.bundle master