Close

Git-Archiv: So wird ein Git-Projekt importiert

Manchmal kann es sich als nützlich erweisen, eine Archivdatei eines Git-Repositorys zu erstellen. Eine Archivdatei fasst mehrere Dateien zu einer einzigen Datei zusammen. Sie kann dann extrahiert werden, um die einzelnen Dateien zu reproduzieren. Git ist unglaublich leistungsfähig, was die Aufzeichnung des Verlaufs und die Zusammenarbeit im Team angeht. Archivdateien entfernen jedoch überflüssige Git-Metadaten und lassen sich einfacher an andere Benutzer verteilen oder im langfristigen Cold Storage aufbewahren.


Wozu dient git archive?


Der Befehl git archive ist ein Git-Befehlszeilentool, das eine Archivdatei aus bestimmten Git-Referenzen wie Commits, Branches oder Bäumen erstellt. git archive akzeptiert zusätzliche Argumente, die die Archivausgabe ändern.

Beispiele für git export


Es folgt ein sehr einfaches Beispiel für ~git archive~

git archive --format=tar HEAD

Bei Ausführung dieses Befehls wird ein Archiv aus der aktuellen HEAD-Referenz des Repositorys erstellt. Standardmäßig streamt git archive die Archivausgabe in den kurzlebigen stdout-Stream. Diesen Ausgabestream musst du in einer permanenten Datei aufzeichnen. Du kannst dafür eine permanente Datei angeben, indem du die git archives --output-Option oder die stdout-Umleitung des Betriebssystems verwendest.

git archive --output=./example_repo_archive.tar --format=tar HEAD
Git-Logo
Zugehöriges Material

Git-Merkzettel

Bitbucket-Logo
Lösung anzeigen

Git kennenlernen mit Bitbucket Cloud

Mit dem folgenden Beispiel wird ein neues Archiv erstellt, das in der Datei exmaple_repo_archive.tar gespeichert wird. Die vorherigen Beispiele haben beide eine unkomprimierte Archivausgabe erzeugt. Dies wird durch die Option --format=tar deutlich. Die Formatoption akzeptiert auch gängige komprimierte Dateiformate wie zip und tar.gz. Wenn du eine dieser Formatoptionen übergibst, wird ein komprimiertes Archiv erzeugt. Falls ein Formatwert nicht übergeben wird, wird er von jeder übergebenen --output-Option abgeleitet.

git archive --output=./example_repo_archive.tar.gz --format=tar HEAD ./build

Ein Teilarchiv des Repositorys kann durch Übergabe eines Pfadarguments erstellt werden. In diesem Beispiel wird dem Archivierungsbefehl ein ./build-Pfadargument hinzugefügt. Dieser Befehl gibt ein Archiv aus, das nur Dateien enthält, die im ./build-Verzeichnis gespeichert sind.

Optionen


Die vorherigen Beispiele zeigten einige der am häufigsten verwendeten Anwendungsfälle für git archive. Im Folgenden findest du erweiterte Optionen, die an git archive übergeben werden können.

--prefix=<prefix>/

Die Präfix-Optionen stellen jeder Datei in einem Archiv einen Pfad voran. Dies kann hilfreich sein, um sicherzustellen, dass Archivinhalte in einem eindeutigen Namespace extrahiert werden.

--remote=<repo>

Bei der Remote-Option wird die URL eines Remote-Repositorys erwartet. Bei Aufruf mit der Remote-Option ruft git archive das Remote-Repository ab und erstellt ein Archiv aus der angegebenen Referenz, wenn sie auf der Remote-Option verfügbar ist.

Konfiguration


Es gibt ein paar globale Git-Konfigurationswerte, die ~git archive~ berücksichtigt. Diese Werte können mit dem git config-Dienstprogramm festgelegt werden.

tar.umask

Die unmask-Konfigurationsoption wird verwendet, um die Berechtigungsbitbeschränkung für die Ausgabearchivdatei auf Unix-Ebene anzugeben.

tar.<format>.command

Diese Konfigurationsoption ermöglicht die Angabe eines benutzerdefinierten Shell-Befehls, durch den die git archive-Ausgabe ausgeführt wird. Dies ähnelt dem Weglassen der Option --output und der Weiterleitung des stdout-Streams aus ~git archive~ an ein benutzerdefiniertes Tool, wodurch eine feste benutzerdefinierte Archivnachbearbeitung ermöglicht wird.

tar.<format>.remote

Wenn diese Option aktiviert ist, können Remote-Clients Archive des Typs format abrufen.

Git archive – Zusammenfassung

Git archive ist ein hilfreiches Dienstprogramm für die Erstellung von verteilbaren Paketen von Git-Repositorys. Es kann auf bestimmte Referenzen eines Repositorys abzielen und nur den Inhalt dieser Referenz verpacken. Git archive verfügt über mehrere Ausgabeformate, die zusätzliche Komprimierung nutzen können.


Diesen Artikel teilen
Nächstes Thema

Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Mitarbeiter arbeiten mit unzähligen Tools zusammen

Bitbucket-Blog

Abbildung: DevOps

DevOps-Lernpfad

Demo Den: Feature-Demos mit Atlassian-Experten

So funktioniert Bitbucket Cloud mit Atlassian Open DevOps

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up