git archive

Verwaltung

Exportiert die Dateien eines Commits als Zip- oder Tar-Archiv


Der Befehl 'git archive' schreibt die Dateien eines Commits, Tags oder Branches in ein Zip- oder Tar-Archiv — ohne Historie und ohne .git-Ordner. So veröffentlicht man ein Release üblicherweise als Download. Das Format folgt der Endung der Ausgabedatei, und --prefix legt alle Dateien in einen Ordner.

Syntax

git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [-o <file>] <tree-ish> [<path>...]
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (3)

Schreibt das Archiv in diese Datei; das Format ergibt sich aus der Endung.

EmpfohlenDas Archiv in eine Datei schreiben

Beispiel

git archive -o shop.zip HEAD

Legt jede Datei im Archiv unter diesen Ordner (mit / abschließen).

EmpfohlenIn einen einzigen, ordentlichen Ordner entpacken

Beispiel

git archive --prefix=shop-1.0/ -o shop.tar.gz v1.0

Listet die verfügbaren Formate.

Bei BedarfDie unterstützten Formate sehen

Beispiel

git archive --list

Die richtige Option wählen

archive oder bundle

Dateien oder Historie?

BefehlEnthältEinsatz
git archiveDie Dateien eines CommitsDownloads, Deployments
git bundleCommits und BranchesEin Repository offline übertragen

Beispiele

Ein Release zippen

git archive -o shop-1.0.zip v1.0

Die Dateien von v1.0 in einem Zip.


Tar mit einem Ordner

git archive --prefix=shop/ -o shop.tar.gz HEAD

Alles in shop/.


Nur ein Ordner

git archive -o docs.zip HEAD docs/

Nur der Ordner docs.

Workflow-Beispiele

1
git tag -a v1.0 -m "Release"

Taggen

2
git archive --prefix=shop-1.0/ -o shop-1.0.zip v1.0

Exportieren

Fehlerbehebung

Einige Dateien fehlen

Ursache: Unverfolgte oder ignorierte Dateien werden nie archiviert

Committe sie, oder prüfe die export-ignore-Regeln in .gitattributes

Tipps & Stolperfallen

Best Practices

  • ✓Archiviere Tags, keine Branches, damit der Download zum Release passt.

Häufige Fehler

  • ✗Historie im Archiv erwarten — für Historie gibt es git bundle.
  • ✗-o vergessen und das Terminal mit Binärdaten füllen.

FAQ

A:

Ja: markiere sie in .gitattributes mit export-ignore.