Wie kann ich jemandem ein Git-Repository per E-Mail senden?

84

Ich habe versucht:

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

: und dann sende ich eine E-Mail an archive.zip und am anderen Ende entpacken sie archive.zip in einen Ordner. Wenn sie jedoch Git-Befehle ausprobieren, stellen sie fest, dass dies kein gültiges Git-Repository erzeugt

appshare.co
quelle
19
Für andere, die dies finden: Der Grund, warum das Git-Archiv für den Job nicht geeignet ist, ist, dass es nur den Arbeitsbaum packt. Es dient dazu, Dinge wie die Erstellung eines Tarballs aus all Ihren Quellen für die Verteilung zu tun.
Cascabel

Antworten:

113

Sie können git bundleeine einzelne Datei verwenden und per E-Mail versenden

Siehe " Projekt sichern, das Git verwendet "

Ein Git-Bundle ist nur eine Datei, die sehr einfach erstellt und erneut importiert werden kann, da sie wie eine andere Fernbedienung behandelt werden kann.

Nach dem Empfang können Sie es klonen oder aus dieser Datei abrufen.

Wie unter " Backup von Github Repo " erwähnt, möchten Sie wahrscheinlich, dass die erste E-Mail Ihr Bundle mit allen Zweigen erstellt:

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

Wie Andreas in den Kommentaren erwähnt, hat Scott Chacon kürzlich (März 2010) einen "niedlichen" Artikel zu diesem Thema im ProGit-Blog geschrieben :

Gits kleines Bündel Freude

VonC
quelle
3
@Zubair: Ja, die ganze Geschichte ist gespeichert, im Gegensatz zu git archive!
VonC
2
Vielen Dank. Ich habe es herausgefunden: git init und dann: git pull bundle.bdl master
appshare.co
6
@Zubair: entbündeln? Sie können es einfach klonen, um ein normales Git-Repo zu erhalten. Oder ziehen Sie es in einem leeren Repo. Welches ist, ich sehe jetzt, was Sie getan haben;)
VonC
1
Dies ist eine gute Übersicht über die Verwendung des Bundle-Befehls und seine Funktionsweise: progit.org/2010/03/10/bundles.html
Andreas
2
@BVengerov Der Link ist jetzt git-scm.com/blog/2010/03/10/bundles.html
VonC
4

Wie die vorherige Antwort sagte, ist Git Bundle der Weg.

Wenn Sie ein Bundle erstellen möchten, indem Sie nur einen Zweig verwenden (ich bevorzuge es, nur den Master zu bündeln) und per E-Mail senden, können Sie Folgendes tun:

$ git bundle create /tmp/mygitbackup.bundle master

Manu Manjunath
quelle