Le fichier .gitkeep


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.

3 thoughts on “Le fichier .gitkeep

  • Romain

    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.

  • Paprika

    @MrKooky Non mais en fait le nom du fichier n’a aucune incidence, qu’il s’appelle .mdr ou .vide revient au même. L’essentiel c’est qu’il y ait quelque chose dans le dossier pour que celui ci ne soit pas ignoré. Le .gitkeep est une convention comme dit dans le post.

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.