J'ai un répertoire de données à la racine du projet. Il a un répertoire d'images et des fichiers. Voici un exemple:
Que faut-il écrire dans gitignore, pour ignorer les fichiers du répertoire data/(résultats.csv et r.txt) et ceux du répertoire images/(image.jpg, image2.jpg, image3.jpg)?
Quand je le commets, la structure de dossier dans le référentiel devrait être:
Donc, je veux juste que la structure de dossiers vides soit validée.
Dans Git, vous ne pouvez pas valider de dossiers vides, car Git ne sauvegarde pas de dossiers, mais uniquement des fichiers. Vous devrez créer un fichier d’espace réservé à l’intérieur de ces répertoires si vous voulez réellement qu’ils soient "vides" (c’est-à-dire que vous n’avez pas de contenu validable).
Il suffit d'ajouter un fichier .gitkeep
dans chaque dossier que vous voulez valider.
Sous Windows, faites-le en cliquant avec le bouton droit de la souris dans le dossier et sélectionnez: Git bash d'ici. Puis tapez: touch .gitkeep
C'est facile.
dire .gitignore
ignorer tout sauf .gitignore
et les dossiers que vous souhaitez conserver. Mettez .gitignore
dans les dossiers que vous souhaitez conserver dans le référentiel.
Contenu du plus haut .gitignore
:
# ignore everything except .gitignore and folders that I care about:
*
!images*
!.gitignore
Dans le dossier imbriqué images
, il s'agit de votre .gitignore
:
# ignore everything except .gitignore
*
!.gitignore
Notez que vous devez épeler dans le fichier .gitignore les noms des dossiers que vous ne souhaitez pas ignorer dans le dossier où se trouve ce fichier .gitignore. Sinon, ils sont évidemment ignorés.
Vos dossiers dans le référentiel ne seront évidemment PAS vides, car chacun aura .gitignore
_, mais cette partie peut être ignorée, non. :)
Créer récursivement des fichiers .gitkeep
find . -type d -empty -not -path "./.git/*" -exec touch {}/.gitkeep \;
Traditionnellement chaque fois que je voulais valider et vider la structure de répertoires, je crée la structure puis, dans les répertoires feuille, place un fichier vide appelé empty.txt
.
Ensuite, lorsque je mets des éléments prêts à être utilisés, je peux simplement retirer le empty.txt
file et valide les fichiers réels.
c'est à dire.
Pensez aussi à ne faire que 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 les données.
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"
Vous pouvez faire un commit vide avec git commit --allow-empty
, mais cela ne vous permettra pas de valider une structure de dossiers vide car git ne sait pas s’occuper des dossiers en tant qu’objets eux-mêmes, mais uniquement des fichiers qu’ils contiennent.
Ajoutez simplement un fichier nommé .keep dans le dossier images. Vous pouvez maintenant créer et valider et ajouter un dossier au contrôle de version.
Créer un fichier vide dans le dossier images $ touch .keep
$ git status
Sur branche master Votre branche est à jour avec 'Origine/master'. Fichiers non suivis: (Utilisez "git add ... "à inclure dans ce qui va être commis) images / rien n'est ajouté pour commettre mais des fichiers non suivis sont présents (utilisez" git add "à Piste)
$ git add .
$ git commit -m "adding empty folder"
Selon leur FAQ, GIT ne suit pas les répertoires vides.
Toutefois, il existe des solutions de contournement en fonction de vos besoins et des exigences de votre projet.
En gros, si vous voulez suivre un répertoire vide, vous pouvez placer un .gitkeep
fichier ici. Le fichier peut être vide et cela fonctionnera simplement. C’est une façon pour Gits de suivre un répertoire vide.
Une autre option consiste à fournir de la documentation pour le répertoire. Vous pouvez simplement y ajouter un fichier readme décrivant son utilisation prévue. Git suivra le dossier car il contient un fichier et vous avez à présent fourni de la documentation à vous-même et/ou à quiconque utilisant le code source.
Si vous construisez une application Web, vous trouverez peut-être utile d'ajouter simplement un fichier index.html pouvant contenir un message d'autorisation refusée si le dossier n'est accessible que par l'application. Codeigniter le fait avec tous leurs répertoires.