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
Zugehöriges Material
Git-Merkzettel
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.