Close

Git Archive: Hoe exporteer je een git-project

Soms kan het handig zijn om een archiefbestand van een Git-repository te maken. Een archiefbestand combineert meerdere bestanden tot een enkel bestand. Een archiefbestand kan vervolgens worden geëxtraheerd om de individuele bestanden te reproduceren. Git kan ongelooflijk krachtig geschiedenis en teamsamenwerking bewaren. Archiefbestanden verwijderen echter de overhead van de metagegevens van Git en kunnen eenvoudiger onder andere gebruikers worden verspreid of in langdurige koude opslag worden bewaard.


Wat doet git archive?


De opdracht git archive is een Git-opdrachtregelfunctie waarmee een archiefbestand kan worden gemaakt op basis van bepaalde Git-refs, zoals commits, branches of bomen. git archive accepteert aanvullende argumenten die de uitvoer van het archiveren zullen veranderen.

Voorbeelden van een Git-export


Een heel eenvoudig voorbeeld van een ~git archief~ volgt

git archive --format=tar HEAD

Wanneer deze opdracht wordt uitgevoerd, wordt er een archief aangemaakt op basis van de huidige HEAD-ref van de repository. git archive stuurt standaard de archiefuitvoer naar de tijdelijke stdout-stroom. Je moet deze uitvoerstroom vastleggen in een permanent bestand. Je kunt een permanent bestand specificeren door de optie --output voor git archive te gebruiken of door de stdout redirection van het besturingssysteem te gebruiken.

git archive --output=./example_repo_archive.tar --format=tar HEAD
Git-logo
gerelateerd materiaal

Git cheat sheet

Logo Bitbucket
Oplossing bekijken

Git leren met Bitbucket Cloud

In het volgende voorbeeld wordt een nieuw archief aangemaakt en opgeslagen in het bestand example_repo_archive.tar. De voorgaande voorbeelden hebben beide ongecomprimeerde archiefuitvoer opgeleverd. Dit wordt aangeduid met de optie --format=tar. De indelingsoptie accepteert ook de populaire gecomprimeerde bestandsindelingen zip en tar.gz. Als je een van deze indelingsopties invoert, krijg je een gecomprimeerd archief. Als de indelingswaarde niet wordt doorgegeven, wordt die afgeleid uit alle doorgegeven --output-opties.

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

Een gedeeltelijk archief van de repository kan worden aangemaakt door een padargument in te voeren. In dit voorbeeld wordt het padargument ./build toegevoegd aan de opdracht archive. Met deze opdracht wordt een archief uitgevoerd dat alleen bestanden bevat in de map ./build zijn opgeslagen.

Opties


In de vorige voorbeelden zag je een paar van de meest gebruikte usecases van git archive. De volgende voorbeelden zijn uitgebreide opties die kunnen worden doorgegeven aan git archive.

--prefix=<prefix>/

De opties voor het voorvoegsel staan vóór een pad naar elk bestand in een archief. Dit kan handig zijn om ervoor te zorgen dat de inhoud van het archief wordt geëxtraheerd in een unieke naamspace.

--remote=<repo>

De remote-optie verwacht een URL voor een externe repository. Wanneer deze wordt aangeroepen met de optie remote, haalt git archive de externe repository op en maakt een archief aan op basis van de opgegeven ref, als die beschikbaar is in de remote.

Configuratie


Er zijn een paar globale Git-configuratiewaarden die ~git archive~ zal respecteren. Deze waarden kunnen worden ingesteld met behulp van het hulpprogramma git config.

tar.umask

De configuratieoptie voor maskeren ongedaan maken wordt gebruikt om een beperking van de machtigingsbit op Unix-niveau op te geven voor het uitvoerarchiefbestand.

tar.<format>.command

Deze configuratieoptie maakt het mogelijk om een aangepaste shellopdracht te specificeren die de uitvoer van git archive zal uitvoeren. Dit is vergelijkbaar met het weglaten van de optie --output en het doorsturen van de stdout-stroom van ~git archive~ naar een aangepaste tool. Dit maakt vaste nabewerking van aangepaste archieven mogelijk.

tar.<format>.remote

Indien ingeschakeld, kunnen remote clients archieven van het type format ophalen.

git archive-samenvatting

git archive is een handige functie om distribueerbare pakketten van Git-repository's te maken. git archive kan op specifieke refs van een repository gericht zijn en alleen de inhoud van die ref inpakken. git archive heeft verschillende uitvoerindelingen die extra gecomprimeerd kunnen worden.


Deel dit artikel
Volgend onderwerp

Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Mensen die samenwerken met een muur vol tools

Bitbucket-blog

Toelichting DevOps

DevOps-leertraject

Demo Den Feature-demo's met Atlassian-experts

Hoe Bitbucket Cloud werkt met Atlassian Open DevOps

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up