Comment commit des dossiers vides?
Vendredi 18 Aout 2023 08:30

Comment commit des dossiers vides?

Pour certains de mes projets, j’ai des dossiers comme par exemple les dossiers “tmp”, “thumbs”,... qui ne contiennent rien mais qui, s'ils ne sont pas présents, vont générer des erreurs lors de l'exécution du projet.

Par défaut, un dossier vide ne sera pas commit, ce qui au premier abord ne dérange pas.
Ce qui est vrai jusqu'à ce que vous réinstalliez votre projet et que ce dernier vous sorte diverses erreurs concernant des dossiers non existants… Oui c’est du vécu…

J’ai donc cherché la méthode pour commit nos dossiers et elle est finalement très simple.

Le .gitkeep

Tout repose sur un petit fichier à placer dans le dossier que vous souhaitez conserver.
Petit car il est vide.

Donc imaginons nous sommes dans un projet symfony et nous souhaitons conserver le dossier “/public/thumbs/ il nous suffit d’y créer un fichier “.gitkeep”.

Vous pourrez donc désormais le commit.

Et c’est tout?

Non pas exactement car si on se limite à celà, le dossier sera bien commit mais si lors de vos tests vous avez généré des fichiers dans ce dossier, ils seront également commité…

Nous allons donc ajouter le dossier à notre “.gitignore”

Heu… mais du coup il ne sera plus commit ?!
En effet! Il faut donc rajouter une autre ligne pour créer une exception pour le fichier “.gitkeep”

/public/thumbs/
!/public/thumbs/.gitkeep

Je vous résume donc ces deux lignes qui vont ignorer le contenu du dossier “/public/thumbs/” mais vont tout de même prendre en compte le fichier “.gitkeep”

Nos dossiers seront désormais toujours présent!