Aller au contenu

Git/Exclure des fichiers du dépôt

Un livre de Wikilivres.
< Git

Souvent il y a des fichiers dans l'espace de travail qui ne sont pas souhaitables dans le dépôt :

  • Les fichiers générés temporairement. Par exemple, emacs crée automatiquement une copie des fichiers édités avec, avec un suffixe tilde, comme fichier1~. Il faut donc éviter manuellement de les soumettre.
  • Les fichiers de secours (backup) comme, par exemple, les fichiers .bak générés par les outils de comparaison de fichiers après des opérations de fusion.
  • Les fichiers générés lors de la compilation,
  • ...

Certains fichiers (notamment ceux générés lors de la compilation) sont en général situés dans un répertoire particulier, qu'il est possible d'exclure des dépôts Git.

Pour dire à Git d'ignorer certains fichiers, il est possible de créer un fichier .gitignore. Chaque ligne y représente une spécification (avec wildcards) des fichiers ou répertoires à ignorer. Des commentaires peuvent être ajoutés dedans sur les lignes débutant par un blanc ou un dièse :

# Ignorer les backups Emacs :
*~

# Ignorer le répertoire ''cache'' :
app/cache

Ce fichier sera ensuite automatiquement proposé pendant les commits, de sorte que tous les développeurs du dépôt auront la même liste de fichiers à ignorer.

De plus, certains caractères sont interprétés, comme le "!" en début de ligne qui signifie "sauf" (ex : exclure un dossier sauf un de ses fichiers)[1].

Logo

Si un fichier a déjà été commité, l'ajouter dans .gitignore ne changera rien : il faut d'abord le supprimer de la branche.

 Git ne commit pas les nouveaux dossiers vides, sauf s'ils contiennent un fichier .gitkeep.

Pour n’ignorer des fichiers que sur son propre poste, il faut les placer dans .git/info/exclude. Ainsi, ils ne seront jamais proposés pendant les commits.

Pour déterminer les fichiers ignorés d'un dossier ou pourquoi un fichier est ignoré, utiliser "check-ignore". Exemple :

git check-ignore core/scripts/imagecopy.py -v