91

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 a folder. But when they try any git commands they find out that this does not produce a valid git repository

yazz.com
  • 55,240
  • 63
  • 230
  • 373
  • 22
    For others who find this: the reason git archive isn't right for the job is that it only packages up the work tree. It's for doing things like making a tarball of all your source, for distribution. – Cascabel Mar 30 '10 at 14:52

2 Answers2

124

You could use git bundle and email one single file

See "backing up project which uses git"

A git bundle is just one file which can be very easily created and again imported as it can be treated like another remote.

Once received, you can clone it or fetch from that file.

As mentioned in "Backup of github repo", you will probably want for the first email to make your bundle with all branches:

$ git bundle create /tmp/foo-all --all

As Andreas mentions in the comments, Scott Chacon recently (March 2010) wrote a "cute" article on this topic in the ProGit blog:

Git's Little Bundle of Joy

Daniel Moura
  • 7,678
  • 5
  • 34
  • 60
VonC
  • 1,129,465
  • 480
  • 4,036
  • 4,755
7

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 main) and sending over e-mail, you can do something as below:

git bundle create ~/mygitbackup.bundle main

Above will create a git bundle file in your home directory.

Manu Manjunath
  • 5,961
  • 2
  • 31
  • 31