Close

Commande git archive : Comment exporter un projet Git

Parfois, il peut être utile de créer un fichier d'archive d'un dépôt Git. Un fichier d'archive combine plusieurs fichiers en un seul, qui peut ensuite être extrait pour reproduire chaque fichier. Git est incroyablement efficace pour préserver l'historique et la collaboration d'équipe. Cependant, les fichiers d'archive allègent les métadonnées de Git, et peuvent être plus simples à distribuer à d'autres utilisateurs ou à préserver dans un stockage froid à long terme.


À quoi sert la commande git archive ?


La commande git archive est un utilitaire de ligne de commande Git qui créera un fichier d'archive à partir de références Git spécifiées, telles que des commits, des branches ou des arborescences. La commande git archive accepte des arguments supplémentaires qui modifieront la sortie de l'archive.

Exemples d'exportation Git


Voici un exemple très simple de la commande ~git archive~ :

git archive --format=tar HEAD

Lorsqu'elle est exécutée, cette commande créera une archive à partir de la référence HEAD actuelle du dépôt. Par défaut, git archive diffusera la sortie de l'archive vers le flux stdout éphémère. Vous devrez capturer ce flux de sortie dans un fichier permanent. Vous pouvez spécifier un fichier permanent en utilisant l'option --output de la commande ou en utilisant la redirection stdout du système d'exploitation.

git archive --output=./example_repo_archive.tar --format=tar HEAD
Logo Git
Ressource connexe

Fiche de révision sur Git

Logo Bitbucket
DÉCOUVRIR LA SOLUTION

Découvrir Git avec Bitbucket Cloud

L'exemple suivant va créer une archive et la stocker dans le fichier example_repo_archive.tar. Les exemples précédents ont tous deux créé une sortie d'archive non compressée. Cela est indiqué par l'option --format=tar. L'option de format accepte également les formats de fichiers compressés courants zip et tar.gz. Le fait de transmettre l'une de ces options de format générera une archive compressée. Si aucune valeur de format n'est transmise, elle sera déduite de l'option --output transmise.

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

Une archive partielle du dépôt peut être créée en transmettant un argument de chemin. Cet exemple ajoute un argument de chemin ./build à la commande d'archive. Cette commande générera une archive contenant uniquement les fichiers stockés dans le répertoire ./build.

Options


Les exemples précédents ont montré certains des cas d'usage de la commande git archive les plus fréquemment utilisés. Les options suivantes peuvent être transmises à git archive.

--prefix=<prefix>/

Les options prefix ajoutent un chemin d'accès avant chaque fichier d'une archive. Cela peut être utile pour garantir que le contenu de l'archive est extrait dans un espace de noms unique.

--remote=<repo>

L'option remote attend une URL de dépôt distant. Lorsque la commande git archive est appelée avec l'option remote, elle fetche le dépôt distant et crée une archive à partir de la réf spécifiée si elle est disponible sur le dépôt distant.

Configuration


Il existe quelques valeurs de configuration Git globales que ~git archive~ respectera. Ces valeurs peuvent être définies à l'aide de l'utilitaire git config.

tar.umask

L'option de configuration umask est utilisée pour spécifier la restriction de bit des autorisations de niveau Unix sur le fichier d'archive de sortie.

tar.<format>.command

Cette option de configuration permet de spécifier une commande shell personnalisée via laquelle la sortie de git archive sera exécutée. Cela revient à omettre l'option --output et à canaliser le flux stdout de ~git archive~ vers un outil personnalisé. Cela permet un post-traitement d'archive personnalisé fixe.

tar.<format>.remote

Si cette option est activée, elle permet aux clients distants de récupérer des archives de type format.

Résumé de git archive

La commande git archive est un utilitaire efficace pour créer des packages distribuables de dépôts Git. Elle peut cibler des réfs spécifiques d'un dépôt et n'empaqueter que le contenu de cette réf. Elle possède plusieurs formats de sortie qui peuvent utiliser une compression supplémentaire.


Partager cet article

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Des personnes qui collaborent à l'aide d'un mur rempli d'outils

Le blog Bitbucket

Illustration DevOps

Parcours de formation DevOps

Démos Des démos avec des partenaires d'Atlassian

Fonctionnement de Bitbucket Cloud avec Atlassian Open DevOps

Inscrivez-vous à notre newsletter DevOps

Thank you for signing up