91 votes

Livrer une structure de dossier vide (avec git)

J'ai un répertoire de données dans la racine du projet. Il contient un répertoire d'images et quelques fichiers. Voici un exemple :

data
 images
    image1.jpg
    image2.jpg
    image3.jpg 
 results.csv
 r.txt

Que faut-il écrire dans gitignore, pour ignorer les fichiers du répertoire data/ (c'est-à-dire results.csv et r.txt) et les fichiers du répertoire images/ (image.jpg, image2.jpg, image3.jpg) ?

Quand je l'envoie, la structure des dossiers dans le dépôt doit être la suivante :

data/
 images/

Donc, je veux juste que la structure du dossier vide soit commitée.

4voto

David Culp Points 1655

Vous pouvez faire un commit vide avec git commit --allow-empty mais cela ne vous permettra pas de livrer une structure de dossier vide car git ne connaît pas ou ne se soucie pas des dossiers en tant qu'objets -- seulement des fichiers qu'ils contiennent.

4voto

Kalle Pokki Points 1383

Pensez aussi à faire simplement mkdir -p data/images dans votre Makefile, si le répertoire doit être présent pendant la construction.

Si cela ne suffit pas, créez simplement un fichier vide dans data/images et ignorez data.

touch data/images/.gitignore
git add data/images/.gitignore
git commit -m "Add empty .gitignore to keep data/images around"
echo data >> .gitignore
git add .gitignore
git commit -m "Add data to .gitignore"

1voto

JoeMoe1984 Points 425

Selon leur FAQ, GIT ne tient pas compte des répertoires vides.

FAQ Git

Toutefois, il existe des solutions de rechange en fonction de vos besoins et des exigences de votre projet.

En fait, si vous voulez suivre un répertoire vide, vous pouvez placer un fichier de type .gitkeep dans ce fichier. Le fichier peut être vide et cela fonctionnera. C'est la façon dont Gits suit un répertoire vide.

Une autre option consiste à fournir une documentation pour le répertoire. Vous pouvez simplement y ajouter un fichier readme décrivant son utilisation attendue. Git suivra le répertoire parce qu'il contient un fichier et que vous avez maintenant fourni une documentation pour vous et/ou pour toute autre personne qui pourrait utiliser le code source.

Si vous construisez une application web, vous pouvez trouver utile d'ajouter simplement un fichier index.html qui peut contenir un message de permission refusée si le dossier n'est accessible que par l'application. Codeigniter fait cela avec tous ses répertoires.

1voto

Nayagam Points 712

Il suffit d'ajouter un fichier nommé .keep dans le dossier images. Vous pouvez maintenant mettre en scène et commettre et également ajouter le dossier au contrôle de version.

Créer un fichier vide dans le dossier images $ touch .keep

$ git status

On branch master
Your branch is up-to-date with 'origin/master'.

Untracked files:
  (use "git add ..." to include in what will be committed)

    images/

nothing added to commit but untracked files present (use "git add" to track)

$ git add .

$ git commit -m "adding empty folder"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X