21/04/2021

2. ignorer des fichiers

Lu 1466 fois Licence Creative Commons

Fichiers ou dossiers à ignorer

Dans la plupart des projets, il y a des dossiers ou fichiers spécifiques que vous ne souhaitez pas enregistrer. En général, il s'agit de fichiers locaux, spécifiques à votre ordinateur, ou bien de dossiers de dépendances.

Quelques exemples:

  • Si vous utilisez un IDE de JetBrains, celui-ci va créer un dossier /.idea/ qui contient de la configuration spécifique de l'éditeur pour ce projet sur votre poste. Celui-ci ne devrait pas être enregistré dans le dépôt car vos collègues ont probablement leur propre configuration ou utilisent un éditeur différent.
  • Si vous installez des dépendances JavaScript avec Yarn ou NPM, elles seront enregistrées dans un dossier /node_modules/. Ce dossier ne devrait pas être enregistré dans le dépôt car il est très lourd, et il suffira du fichier package.json pour que vos collègues installent les dépendances et recréent le dossier /node_modules/.
  • Si vous installez des dépendances PHP avec Composer, il ne faudra pas enregistrer le dossier /vendor/ dans le dépôt, le fichier composer.json suffira.


« Et comment on peut ignorer ces dossiers ?! »


Fichiers .gitignore

On pourrait penser qu'il suffit de ne jamais les enregistrer, mais ils apparaîtront toujours dans la liste des nouveaux fichiers avec git status, et cela empêche d'utiliser le raccourci git add ..
La solution est d'utiliser un fichier nommé .gitignore dans lequel lister ce que Git ne doit pas prendre en compte:

.idea
node_modules
vendor
un-fichier-a-ignorer.txt

Vous pouvez avoir plusieurs fichiers .gitignore dans un projet, les chemins inscrits à l'intérieur sont relatifs à l'emplacement du fichier .gitignore.

Quelques "hacks" avec le .gitignore

StackOverflow regorge de questions/réponses sur Git, on peut y trouver des techniques intéressantes:


Partie pratique

Créer un fichier README.md qui décrira le projet:

# Cours git

Projet d'initiation à **Git**

Créer un dossier /local/ qui doit être ignoré par Git et qui contient un fichier ignored.txt. Ajouter tous les changements au staging.