Ich habe mich gefragt, ob es eine gute "Git-Export"-Lösung gibt, die eine Kopie eines Baums ohne den .git
Repository-Verzeichnis. Es gibt mindestens drei mir bekannte Methoden:
git clone
gefolgt von der Entfernung der.git
Repository-Verzeichnis.git checkout-index
spielt auf diese Funktionalität an, beginnt aber mit "Lesen Sie einfach den gewünschten Baum in den Index ein...", wobei ich mir nicht ganz sicher bin, wie man das macht.git-export
ist ein Skript eines Drittanbieters, das im Wesentlichen einegit clone
an einem temporären Ort, gefolgt vonrsync --exclude='.git'
in das endgültige Ziel.
Keine dieser Lösungen scheint mir wirklich zufriedenstellend zu sein. Die Lösung, die dem am nächsten kommt, ist svn export
könnte die Option 1 sein, da beide voraussetzen, dass das Zielverzeichnis zunächst leer ist. Aber Option 2 scheint noch besser zu sein, vorausgesetzt, ich kann herausfinden, was es bedeutet, einen Baum in den Index zu lesen.
1 Stimmen
@rnrTom: Siehe die Antwort von Somov. (es gibt nichts "Komprimiertes" in einem tar-Archiv).
36 Stimmen
@mrTom
git archive --format zip --output "output.zip" master -0
erhalten Sie ein unkomprimiertes Archiv (-0 ist das Kennzeichen für unkomprimiert). git-scm.com/docs/git-archive .9 Stimmen
Ich stimme @mrTom zu, und ich glaube nicht, dass es darauf ankommt, ob das Archiv komprimiert oder unkomprimiert ist. Mit SVN kann ich
export
ein 250 kB großes Unterverzeichnis direkt aus dem entfernten Repository (das sonst 200 MB groß sein könnte, Revisionen nicht eingerechnet) - und ich werde das Netzwerk nur für 250 kB (oder so) Download-Transfer belasten. Mitgit
,archive
muss auf dem Server aktiviert sein (deshalb kann ich es nicht ausprobieren).clone --depth 1
vom Server kann immer noch ein Repo von sagen wir 25 MB abrufen, wobei die.git
Unterordner nimmt allein 15 MB ein. Daher würde ich immer noch sagen, die Antwort ist "nein".0 Stimmen
@mrTom die Antwort lautet in der Tat YES Siehe die Antwort des OPs - der Befehl lautet
git checkout-index
2 Stimmen
Hier ist eine schöne und einfache Möglichkeit:
git archive -o latest.zip HEAD
9 Stimmen
Ich benutze diese Frage schon seit Jahren als Man-Page für "git export", zu Ihrer Information.