Comment configurer .gitignore en tant que liste blanche

0
146

Le fichier .gitignore est un élément essentiel de tout référentiel Git ; il empêche le suivi et le partage des fichiers indésirables dans le contrôle de source. Habituellement, vous souhaitez ignorer certains fichiers et dossiers, mais parfois il est plus facile de le faire dans l'autre sens.

Utiliser .gitignore comme une liste blanche

L'utilisation régulière de .gitignore est simple—donnez-lui un nom de fichier ou un caractère générique correspondant, et ce fichier sera bloqué. Cependant, lorsque vous l'utilisez comme liste blanche, cela devient un peu plus compliqué.

Tout d'abord, vous aurez besoin des deux directives suivantes en haut du fichier, qui bloquent tout par défaut avec un caractère générique * :

* !*/

La deuxième ligne est nécessaire car la liste blanche n'est pas aussi simple que de bloquer. En raison de la façon dont Git gère ces fichiers, s'il constate qu'un répertoire est bloqué, il n'essaiera même pas de vérifier quoi que ce soit dans le répertoire pour voir s'il a été débloqué plus tard. Il l'ignore simplement et ignore toutes les règles à l'intérieur de ce répertoire.

Ainsi, la deuxième ligne ici indique à Git de vérifier spécifiquement les sous-dossiers. Le point d'exclamation ! est utilisé pour transformer la règle en liste blanche. Il correspond à tous les répertoires, mais comme il ne correspond à rien à l'intérieur de ces répertoires, Git ne suivra aucun fichier pour l'instant avec seulement ces deux lignes.

Cela permet des configurations comme les suivantes :

* !*/# suivre ce fichier !.gitignore # mettre tout en liste blanche dans ./config/!config/Publicité

Le fichier .gitignore lui-même se trouve dans le répertoire principal, il peut donc simplement être mis en liste blanche normalement. La liste blanche des répertoires nécessite simplement une barre oblique de fin, et Git reviendra à la normale dans ce répertoire, remplaçant le caractère générique de blocage précédent.

Si vous souhaitez explicitement ajouter à la liste blanche un répertoire et tout son contenu, vous devez utiliser le double caractère générique !config/**. Un seul caractère générique ne se propagerait pas de manière récursive dans les sous-répertoires. Cela remplacera toutes les autres règles de blocage.

Débogage .gitignore

Si vous rencontrez des problèmes avec votre configuration, vous peut le déboguer avec la commande check-ignore Git :

git check-ignore -v testfile.json