Start·Terminal-Befehle

git archive

git

Aufruf

git archive --format=tar.gz -o <file> <tree-ish>

Exportiert die Dateien eines Commits als tar oder zip; .git und unverfolgte Dateien bleiben draußen, das ergibt ein saubereres Release-Archiv als das Zippen des Ordners.

Häufige Optionen

OptionBedeutung
--format=<fmt>tar, zip or tar.gz
-o <file>write to a file; the format is guessed from the name
--prefix=<dir>/put everything under one folder inside the archive
--add-file=<file>include an untracked file as well
--remote=<repo>let the server build it
-llist the formats this build supports

Beispiele

git archive --format=tar.gz -o app-1.2.0.tar.gz v1.2.0

a release tarball of exactly that tag

git archive --prefix=app/ -o app.zip HEAD

a zip whose contents sit inside app/

git archive -o src.zip HEAD -- src

only the src directory

Verwirrend ist, dass Rückgängig mehrere Formen hat — den Zeiger eines Branch zu verschieben ist nicht dasselbe wie einen Gegen-Commit zu setzen.

So liest man das

  • Eckige Klammern [ ] markieren einen Teil, den man weglassen kann.
  • Drei Punkte … heißen: mehrere sind erlaubt.
  • Optionen achten auf Groß- und Kleinschreibung — bei manchen Befehlen sind -r und -R verschieden.

Häufige Fragen

Q. Was macht git archive?

Exportiert die Dateien eines Commits als tar oder zip; .git und unverfolgte Dateien bleiben draußen, das ergibt ein saubereres Release-Archiv als das Zippen des Ordners.

Q. Wie gibt man ihn ein?

git archive --format=tar.gz -o <file> <tree-ish> — eckige Klammern markieren, was wegfallen darf.

Q. Wie viele Optionen lohnen sich?

Hier stehen 6; die vollständige Liste steht in man git. Der Befehl gehört zu git.

Verwandte Befehle

man-Seite: man git-archive