Astuce Git // Comprendre l’utilité des .gitkeep et sa différence avec les .gitignore

Avez-vous déjà rencontré des fichiers .gitkeep ou .gitignore à l’intérieur des dépôts Git de vos projets ? La différence entre ces deux typologies de fichiers n’est parfois pas évidente.

Nous allons ici détailler leurs utilités et leurs différences. En effet, comprendre leurs rôles vous aidera à mieux organiser vos projets et à exclure les fichiers inutiles / indésirables.

Image de couverture de l'article sur Git : comprendre l'utilité des .gitkeep et .gitignore

Le fichier .gitkeep

Pour expliquer son mécanisme, il vous faut tout d’abord comprendre et maitriser le mécanisme de versioning de Git. Si vous avez besoin d’un rappel, nous vous invitons à consulter cet article sur les mécanismes de Git.

Git ne peut pas ajouter de dossiers totalement vides à son versioning. Son modèle de fonctionnement et de suivre les modifications de fichiers, il ne suit donc pas les répertoires vides par défaut.

Créer un fichier .gitkeep dans un répertoire vide permet ainsi de contourner cette limitation, et ainsi de proposer à Git de garder le suivi. Cela est particulièrement utile lorsque vous souhaitez conserver la structure du répertoire pour des raisons d’organisation.

A noter qu’il n’y a pas de prérequis au nommage de ce fichier. C’est plus par habitude/convention, mais le nommer « .toto » n’entraverait en rien la mise en place de ce mécanisme.

Le fichier .gitignore

Le fichier .gitignore, quant à lui, est utilisé pour indiquer à Git les fichiers et répertoires à ignorer lors des opérations de suivi des modifications. Vous pouvez lister les noms de fichiers, les extensions de fichier ou les répertoires que vous ne souhaitez pas inclure dans votre dépôt.

Par exemple, si vous avez des fichiers de configuration contenant des informations sensibles comme des clés d’accès, des mots de passe ou des fichiers de configuration liés à votre IDE (PHPStorm laisse des dossiers .idea dans les projets) vous pouvez les ajouter au fichier .gitignore pour vous assurer qu’ils ne seront pas suivis par Git.

Ci-dessous un fichier type .gitignore que j’utilise sur tous mes projets :

/vendor
/composer.lock
/test/config/.env
.idea/
.project/
.bundle/
*.retry
.vscode/
.phpunit.result.cache
/results/
/.run/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.