Puisque Git ne connaît pas de dossiers, seulement des fichiers, les structures de dossiers vides ne se retrouvent pas dans le référentiel. Cependant, comme de nombreux cadres et projets en ont absolument besoin, ils devraient aboutir là-bas. Une pratique courante consiste à créer ce que l'on appelle des fichiers d'espace réservé (souvent appelés .gitkeep), qui spécifient implicitement la structure des dossiers. Ces fichiers peuvent être créés facilement et, si vous le souhaitez, vous assurer également que les autres fichiers des dossiers sont ignorés.
Nous créons d'abord un référentiel de test et créons des sous-dossiers:
434e6616f335599d241482f169f68f1b
Nous avons maintenant la structure de dossiers suivante:
434e6616f335599d241482f169f68f1b
Comme prévu, un état git -u ne nous montre aucun changement:
Nous allons maintenant utiliser find pour créer les fichiers d'espace réservé à tous les emplacements requis:
434e6616f335599d241482f169f68f1b
Nous avons maintenant reçu la structure de dossiers / fichiers suivante:
434e6616f335599d241482f169f68f1b
Un état git -u nous montre maintenant que tous les dossiers se retrouvent (implicitement) dans le référentiel:
Si nous voulons maintenant nous assurer que la structure des dossiers finit toujours dans le référentiel, mais pas les fichiers (à l'exception des fichiers d'espace réservé), nous créons un gitignore:
434e6616f335599d241482f169f68f1b
Nous utilisons le Syntaxe double étoile:
434e6616f335599d241482f169f68f1b
La première ligne ignore récursivement tous les fichiers et dossiers (à n'importe quel niveau) dans le dossier "foo", la deuxième ligne exclut récursivement tous les dossiers de cette règle (à n'importe quel niveau) et la troisième ligne exclut tous les fichiers .gitkeep (à n'importe quel niveau) .
Créons maintenant quelques fichiers de test:
434e6616f335599d241482f169f68f1b
Un état git -u nous montre maintenant le résultat souhaité: