Comment conserver un dossier vide ? .gitkeep ou .gitignore ?

Git conserve les dossiers via leurs fichiers lors des opérations habituelles d’ajout et d’extraction. Choisissez .gitkeep pour un dossier initialement vide, ou .gitignore pour ignorer les futurs fichiers générés.

1. Conserver un fichier témoin

Créez uploads et le fichier vide uploads/.gitkeep, puis indexez précisément ce fichier :

git add -- uploads/.gitkeep

Vérifiez que uploads/.gitkeep figure dans l’index. .gitkeep est une convention sans effet spécial ; un README expliquant le dossier convient aussi. Il n’ignore pas automatiquement les fichiers futurs.

git ls-files -- uploads/

2. Conserver le dossier en ignorant son contenu

Autre possibilité : créez uploads/.gitignore avec ces deux lignes au lieu de .gitkeep. * ignore le contenu et !.gitignore permet de suivre le fichier de règles.

Le fichier de règles est lui-même le témoin suivi : le dossier le contient. Les futurs fichiers sont volontairement ignorés jusqu’à modification des règles.

*
!.gitignore

Pourquoi ! ne conserve-t-il pas un fichier dans un dossier ignoré ?

3. Vérifier la méthode choisie

Pour la méthode .gitignore, indexez le fichier de règles :

git add -- uploads/.gitignore

Créez uploads/example.bin et vérifiez la correspondance :

git check-ignore -v -- uploads/example.bin

L’index doit contenir uploads/.gitignore, pas example.bin. Si une règle parent exclut uploads lui-même, corrigez-la pour que Git puisse lire le .gitignore imbriqué.

git ls-files -- uploads/

Comment ignorer des dossiers ? folder/ ou /folder/

Pour le comportement exact et davantage de détails, consultez les références officielles : Documentation Git · Documentation git add