Dossiers Git et vides

Comme il est bien connu que Git ne connaît aucun dossier mais uniquement 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 y arriver. Une pratique courante consiste à créer des fichiers dits réservés (souvent appelés .gitkeep) qui spécifient implicitement la structure des dossiers. Ces fichiers peuvent être facilement créés et, si vous le souhaitez, vous pouvez également vous assurer 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

Un git status -u ne nous montre aucun changement comme prévu:

Dossiers Git et vides

Nous utilisons maintenant 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 git status -u nous montre maintenant que tous les dossiers (implicitement) finissent dans le référentiel:

Dossiers Git et vides

Si nous voulons nous assurer que la structure des dossiers finit toujours dans le référentiel, mais pas dans les fichiers (à l'exception des fichiers d'espace réservé), nous créons un gitignore:

434e6616f335599d241482f169f68f1b

Nous utilisons la syntaxe double étoile :

434e6616f335599d241482f169f68f1b

La première ligne ignore récursivement tous les fichiers et dossiers (à tous les niveaux) du dossier "foo", la deuxième ligne exclut tous les dossiers (à tous les niveaux) récursivement de cette règle et la troisième ligne exclut tous les fichiers .gitkeep (à tous les niveaux) .

Maintenant, nous créons des fichiers de test:

434e6616f335599d241482f169f68f1b

Un git status -u nous montre maintenant le résultat souhaité:

Dossiers Git et vides

Arrière