Git archive
$ git archive --format=tar.gz --output=../test.tar.gz HEAD
Permite empaquetar en test.tar.gz la rama actual del repositorio actual. Si se abre el tar, estarán solamente los archivos, no la carpeta del repositorio.
$ git archive --format=tar.gz --output=../test.tar.gz --prefix=test/ HEAD
Permite hacer lo mismo, pero colocando todo dentro de la carpeta test/
Así, git archive puede ser una alternativa a tar para este caso:
$ tar --exclude-vcs -cvzf test.tar.gz test
$ tar --exclude=.git --exclude=.gitignore -cvzf test.tar.gz test