Garder un dossier vide dans l'historique Git

Par défaut, un dossier vide ne sera pas traqué par Git. Voici deux solutions pour contourner cette contrainte !

Article publié le 16/05/2022, dernière mise à jour le 22/09/2023

Parfois dans un projet il arrive d'avoir un ou plusieurs dossiers qui doivent être présents mais vides à l'initialisation du projet, mais qui seront remplis par l'application elle-même (comme uploads, data, save,...).

Sauf que le gestionnaire de version Git ne considère l'historique que sous la forme de fichiers, donc un dossier vide ne sera jamais ajouté à la version courante, même en utilisant "git add ."

Il se peut alors que l'absence de ces dossiers pose un problème lors de l'exécution de l'application. Voici deux méthodes pour éviter ce désagrément :

Méthode 1 :  Un fichier .gitkeep

La première alternative pour conserver un dossier vide dans Git est que ce dernier ne soit pas... vide. En effet, il suffit d'ajouter un fichier vide dans le répertoire en question et de l'ajouter à l'historique Git.

Il y a une convention qui consiste à nommer ce fichier .gitkeep

Cette convention n'est pas répertoriée dans la documentation de Git, mais elle est néanmoins prise en compte par certains clients.

Méthode 2 : Un fichier .gitignore

Si vous souhaitez utiliser quelque chose de documenté, et offrant quelques possibilités supplémentaires, alors vous pourrez ajouter un fichier .gitignore dans votre dossier vide.

Vous aurez alors la possibilité de dire à Git que ce dossier doit toujours rester vide (en dehors du .gitignore).

# Ignorer tous les fichiers de ce répertoire
*

# Sauf celui-ci
!.gitignore

Méthode bonus

Vous l'aurez compris, avec ces deux méthodes, votre dossier ne sera plus réellement vide. Si vous avez besoin qu'il n'y ait absolument aucune donnée dans ce dossier, alors vous devrez simplement le créer automatiquement à chaque lancement de votre application.

De ce fait, votre dossier n'aura même plus besoin d'être versionné, car il sera généré lorsqu'il le faut !


Jay Heike sur Unsplash

Vous avez terminé l'article ?

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant