Il est souvent superflu de dmeander à Git de versionner tous les fichiers, que cela soit des fichiers compilés, des fichiers contenant des mots de passe, ou des fichiers temporaires produits par votre éditeur. Habituellement, ne pas tenir compte de ce type de fichier dans les systèmes de gestion de version est une tâche laborieuse et longue à mettre en place. Pas avec Git ! En utilisant le fichier .gitignore et d’autres options, nous allons voir comment ignorer certains fichiers par projet et par utilisateur.

Le moyen le plus simple et le plus facile est de créer un fichier .gitignore à la racine du répertoire de votre projet. Les fichiers que vous choisissez d’ignorer décrits dans ce fichier le seront pour tous les répertoires de votre projet, à moins de contenir leur propre fichier .gitignore. Cela permet de centraliser les fichiers à ignorer contrairement à SVN qui nécessite un svn:ignore pour chaque répertoire. Les versions du fichier .gitignore peuvent elle-même être suivies, ce qui est utile.

Voici un exemple simple de fichier .gitignore:

$ cat .gitignore

# des fichiers peuvent être spécifiquement ignorés
.DS_Store

# Il est possible d'utiliser des caractères génériques
*~
*.swp

# Il est possible d'ignorer les répertoires et les fichiers d'un répertoire.
tmp/**/*

Bien sûr, il peut y avoir des cas plus complexes. Vous pouvez aussi ajouter des exceptions à ces règles en commençant la ligne par !. Un exemple est disponible sur le guide GitHub sur les fichiers ignorés.

Deux choses à garder l’esprit avant d’ignorer un fichier: vous devrez passez la commande suivante git rm --cached <file> pour garder ce fichier dans votre arborescence et ensuite l’ignorer. De plus, les répertoires vides ne sont pas suivis pas Git. Si vous voulez que leurs versions soient suivies, ils doivent avoir du contenu. Une commande touch .gitignore est suffisante pour suivre les versions du répertoire.

Vous pouvez également ouvrir $GIT_DIR/info/exclude ($GIT_DIR est habituellement votre répertoire .git ) et modifier ce fichier pour définir des fichiers à ignorer pour un projet spécifique. Le problème de cette manière d’ignorer les fichiers est que ces changements ne sont pas suivis, mieux vaut réserver cette méthode pour des fichiers personnels qui ne doivent pas être partagés sur un projet.

Une dernière option possible pour ignorer des répertoires est d’ajouter une exception par utilisateur en utilisant l’option core.excludesfiles dans votre fichier de configuration. Vous pouvez définir un fichier .gitignore dans votre répertoire HOME qui sera pris en compte par tous les dépôts en utilisant cette commande:

git config --global core.excludesfile ~/.gitignore

Plus d’informations sur la page du manuel si vous voulez en savoir plus sur ce sujet. Comme d’habitude, si vous avez d’autres astuces, merci de les ajouter en commentaire.