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 fichierpackage.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 fichiercomposer.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
.
.gitignore
Quelques "hacks" avec le StackOverflow regorge de questions/réponses sur Git, on peut y trouver des techniques intéressantes:
- Comment ajouter un dossier vide à un dépôt ? Pour enregistrer un dossier mais pas son contenu.
-
Comment faire oublier un fichier/dossier à Git ? Quand votre
/node_modules/
a été ajouté au.gitignore
mais qu'il a été enregistré auparavant.
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.