On ne peut pas commiter les dossiers vides avec git, si il n’y a pas de fichier dedans, git ignorera le dossier. Parfois, quand on veut partager une arborescence très précise, c’est handicapant. Il s’est donc créé une convention dans la communauté : le fichier .gitkeep.
C’est un fichier vide, nommé, comme vous pouvez l’imaginer, .gitkeep, et que l’on met dans chaque dossier que l’on veut garder. On ajouter le fichier à l’index, et on commit. Dès que le dossier n’est plus vide, on supprime le fichier .gitkeep, et on le commit.
Cependant on veut parfois garder un dossier vide, et qu’il n’y ait jamais de fichier dedans, comme par exemple le dossier /static/ de Django si vous distribuez un software à base de ce framework, puisqu’il doit servir à vos utilisateurs pour y mettre leurs fichiers statiques plus tard. Il serait donc embêtant de mettre un fichier dedans par erreur et le commiter.
Pour éviter cela, il suffit de créer un fichier .gitignore dedans, et de lui donner ces règles :
* # git ignore tous les fichiers !.gitignore # sauf celui-ci |
Ce qui aura pour effet d’interdire le moindre ajout de fichier du dossier en question dans Git, à part le .gitignore, évidement.
En clair, pour stocker un répertoire vide dans git, il faut qu’il ne soit pas vide :p. Heureusement que je retrouve mon svn lundi LOL.
Merci pour la syntaxe du !.gitignore, ça peut être pratique.
Salut.
Sinon t’as aussi le fichier .empty qui fait exactement là même chose.