Come posso inviare a qualcuno un repository git?


86

Ho provato:

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

: e poi invio un'e-mail a archive.zip e dall'altra parte decomprimono archive.zip in una cartella. Ma quando provano qualsiasi comando git scoprono che questo non produce un repository git valido


20
Per gli altri che lo trovano: il motivo per cui l'archivio git non è adatto al lavoro è che impacchetta solo l'albero di lavoro. Serve per fare cose come creare un tarball di tutti i tuoi sorgenti, per la distribuzione.
Cascabel

Risposte:


114

È possibile utilizzare git bundlee inviare tramite e-mail un singolo file

Vedi " Backup di un progetto che usa git "

Un bundle git è solo un file che può essere facilmente creato e nuovamente importato poiché può essere trattato come un altro telecomando.

Una volta ricevuto, puoi clonarlo o recuperarlo da quel file.

Come accennato in " Backup del repository GitHub ", probabilmente vorrai che la prima email crei il tuo pacchetto con tutti i rami:

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

Come afferma Andreas nei commenti, Scott Chacon ha recentemente scritto (marzo 2010) un articolo "carino" su questo argomento nel blog ProGit :

Il piccolo fascio di gioia di Git


3
@Zubair: sì, tutta la cronologia viene salvata, contrariamente a git archive!
VonC

2
Grazie. L'ho capito: git init, e poi: git pull bundle.bdl master
yazz.com

6
@Zubair: separarlo? Puoi semplicemente clonarlo per recuperare un normale repository git. Oppure inseriscilo in un repo vuoto.
Cioè

1
Questa è una buona panoramica di come utilizzare il comando bundle e cosa fa: progit.org/2010/03/10/bundles.html
Andreas

2
@BVengerov Il collegamento ora è git-scm.com/blog/2010/03/10/bundles.html
VonC

4

Come diceva la risposta precedente, git bundle è il modo.

Se vuoi creare un pacchetto utilizzando un solo ramo (preferisco raggruppare solo il master) e inviare tramite e-mail, puoi fare qualcosa come di seguito:

$ git bundle create /tmp/mygitbackup.bundle master

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.