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
Ressource connexe
Fiche de révision sur Git
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
Thème suivant
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.