Von Gast (nicht überprüft) , 29 April 2026

Übersicht

git archive [--format=<fmt>] [--prefix=<p>/] [-o <file>] <tree-ish> [<path>...]

Beschreibung

Der git archive-Befehl erstellt eine Tar- oder Zip-Datei mit dem Inhalt eines beliebigen Trees (Commit, Tag oder Branch). Anders als ein einfaches tar des Working Trees enthält er nur verfolgte Dateien zu einer bestimmten Revision und schließt .git-Verzeichnisse aus. Das macht ihn ideal für die Erzeugung von Release-Tarballs, Quellverteilungen und reproduzierbaren Snapshots.

Die --prefix-Option umhüllt alle Dateien unter einem Unterverzeichnis im Archiv — wichtig für Releases, sodass das Entpacken einen benannten Ordner erzeugt. git archive unterstützt auch das Ausführen über das Netzwerk von Servern, die das erlauben.

Im täglichen Einsatz integriert sich git archive eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git archive --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.

Zu verstehen, wie git archive mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git archive hilft, alle drei zu vermeiden.

Häufige Optionen

OptionBeschreibung
--format=<fmt>tar, tar.gz, zip (Standard tar).
--prefix=<p>/Stellt den Archivpfaden ein Verzeichnis voran.
-o <file>Schreibt in Datei statt stdout.
--remote=<repo>Archiv aus einem Remote-Repository.
--worktree-attributesBeachtet export-ignore-Attribute.
-l, --listListet unterstützte Formate auf.

Beispiele

git archive --format=tar.gz --prefix=myproj-1.0/ -o myproj-1.0.tar.gz v1.0
    # Release-Tarball mit benanntem Top-Level-Verzeichnis

    git archive HEAD docs/ | tar -x -C /tmp/docs
    # Das docs/-Verzeichnis bei HEAD nach /tmp/docs extrahieren

    git archive --format=zip -o snapshot.zip HEAD
    # ZIP-Archiv des aktuellen Trees

Häufige Fehler

Vergessen Sie nicht --prefix, sonst entlädt das Archiv Dateien beim Extrahieren ins aktuelle Verzeichnis. Ohne export-ignore-Attribute kann Ihr Archiv CI-Konfigurationen, Tests und Dev-only-Dateien enthalten, die Sie nicht versenden wollten.

Verwandte Befehle

git bundle, git tag, git show, tar