¿Cómo puedo enviarle un correo electrónico a alguien con un repositorio de git?

84

Yo he tratado:

git archive HEAD --format=zip > archive.zip

: y luego envío un correo electrónico a archive.zip y en el otro extremo descomprimen el archivo archive.zip en una carpeta. Pero cuando prueban cualquier comando de git, descubren que esto no produce un repositorio de git válido

appshare.co
fuente
19
Para otros que encuentran esto: la razón por la que git archive no es adecuado para el trabajo es que solo empaqueta el árbol de trabajo. Es para hacer cosas como hacer un tarball de todas sus fuentes, para su distribución.
Cascabel

Respuestas:

113

Puede usar git bundley enviar un solo archivo por correo electrónico

Ver "hacer una copia de seguridad del proyecto que usa git "

Un paquete de git es solo un archivo que se puede crear y volver a importar fácilmente, ya que se puede tratar como otro control remoto.

Una vez recibido, puede clonarlo o recuperarlo de ese archivo.

Como se menciona en " Copia de seguridad del repositorio de github ", probablemente querrá que el primer correo electrónico haga su paquete con todas las ramas:

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

Como menciona Andreas en los comentarios, Scott Chacon escribió recientemente (marzo de 2010) un artículo "lindo" sobre este tema en el blog de ProGit :

El pequeño paquete de alegría de Git

VonC
fuente
3
@Zubair: sí, toda la historia se guarda, git archive¡ al contrario !
VonC
2
Gracias. Lo descubrí: git init, y luego: git pull bundle.bdl master
appshare.co
6
@Zubair: ¿deshacerlo? Simplemente puede clonarlo para recuperar un repositorio de git normal. O tire de él en un repositorio vacío. Que es, ya veo, lo que hiciste;)
VonC
1
Esta es una buena descripción general de cómo usar el comando bundle y lo que hace: progit.org/2010/03/10/bundles.html
Andreas
2
@BVengerov El enlace ahora es git-scm.com/blog/2010/03/10/bundles.html
VonC
4

Como dijo la respuesta anterior, git bundle es el camino.

Si desea crear un paquete utilizando solo una rama (prefiero agrupar solo el maestro) y enviarlo por correo electrónico, puede hacer algo como a continuación:

$ git bundle create /tmp/mygitbackup.bundle master

Manu Manjunath
fuente