Cet article fait partie d’une longue série en cours d’écriture consacrée à git.
Exporter le contenu d’un dépôt git
Vous avez besoin d’exporter le contenu de votre dépôt git, tout en ignorant la
base de données contenue dans le dossier .git
? Voici une procédure toute
simple à suivre.
D’abord, le lien vers la documentation officielle git archive.
Exporter le dépôt git à la svn export
Si vous connaissez subversion, svn export
permet d’exporter le dossier
de source sans le .svn. L’export se fait tout simplement dans un autre dossier.
Voici l’équivalent git, utilisant un pipe et la commande tar.
cd $HOME/mon-depot-git/
mkdir $HOME/export-mon-depot-git/
git archive master | tar -x -C $HOME/export-mon-depot-git/
Exporter une archive tar
La plupart du temps, on souhaite exporter en tant qu’archive tar, le format par défaut.
cd $HOME/mon-depot-git/
git archive master --output=$HOME/export-mon-depot-git.tar
Exporter une archive tar bzipée ou gzipée
Pour compresser l’archive tar à la volée, on utilise bz2, gzip, ou autre…
git archive master | bzip2 > $HOME/export-mon-depot-git.tar.bz2
git archive master | gzip > $HOME/export-mon-depot-git.tar.gz
Exporter au format zip
Pour exporter une archive zip, on spécifie simplement le format d’archive.
git archive --format zip --output=$HOME/export-mon-depot-git.zip master
Exporter une révision, tag ou branche
On pourra remplacer master dans les exemples précédents par le nom d’un tag, d’une branche, ou encore d’un id de commit.
git archive --output=$HOME/export-mon-depot-git.tar 2.0.1
git archive --output=$HOME/export-mon-depot-git.tar feature/ma-branche
git archive --output=$HOME/export-mon-depot-git.tar b9c8c1b75471c3af17e1b08e4e2401334643ddf7
Ajouter un préfixe
Pour exporter avec un préfixe de dossier, par exemple, le nom du logiciel et son
numéro de version, on pourra ajouter l’option --prefix
aux exemples précédents.
git archive --prefix=mon-logiciel-v2.0.1/ --output=$HOME/export-mon-depot-git.tar 2.0.1
Ignorer certains fichiers lors de l’export
Afin de ne pas exporter le fichier .gitignore
, par exemple, on pourra
ajouter un fichier .gitattributes
à la racine du dépôt et y mettre le
contenu suivant.
.gitattributes export-ignore
.gitignore export-ignore
Notez que ce fichier doit être commité pour être pris en compte par la commande
git archive
.