Quelles sont les différences entre .gitignore
et .gitkeep
? Sont-ils la même chose avec un nom différent, ou remplissent-ils tous deux une fonction différente? Je ne semble pas pouvoir trouver beaucoup de documentation sur .gitkeep
.
.gitkeep
n'est pas documenté, car ce n'est pas une fonctionnalité de Git.
Git impossible d'ajouter un répertoire complètement vide . Les personnes qui souhaitent suivre les répertoires vides dans Git ont créé la convention qui consiste à placer des fichiers appelés .gitkeep
dans ces répertoires. Le fichier peut être appelé n'importe quoi; Git n'attribue aucune signification particulière à ce nom.
Il existe une convention contradictoire consistant à ajouter un fichier .gitignore
aux répertoires vides pour les suivre, mais certaines personnes voient cela comme une source de confusion car l'objectif est de conserver les répertoires vides, pas de les ignorer; .gitignore
est également utilisé pour répertorier les fichiers qui doivent être ignorés par Git lors de la recherche de fichiers non suivis.
.gitkeep
n'est qu'un espace réservé. Un fichier factice, donc git n'oubliera pas le répertoire, car il ne suit que les fichiers.
Si vous voulez un répertoire vide et assurez-vous qu'il reste "propre" pour git, créez un .gitignore
contenant les lignes suivantes:
# .gitignore sample
###################
# ignore all files in this dir...
*
# ... except for this one.
!.gitignore
Si vous souhaitez qu'un seul type de fichiers soit visible pour git, voici un exemple pour tout filtrer, à l'exception de .gitignore et de tous les fichiers .txt
:
# .gitignore to keep just .txt files
###################################
# filter everything...
*
# ... except the .gitignore...
!.gitignore
# ... and all text files.
!*.txt
('#' indique des commentaires.)
.gitignore
est un fichier texte comprenant une liste de fichiers de votre répertoire que git ignorera ou n’ajoutera pas/ne mettra pas à jour dans le référentiel.
.gitkeep
Depuis que git supprime ou n'ajoute pas de répertoires vides à un repo .gitkeep est une sorte de bidouille (je ne pense pas qu'il soit officiellement nommé en tant que partie de git) pour garder des répertoires vides dans le repo.
il suffit de faire un touch /path/to/emptydirectory/.gitkeep
pour ajouter le fichier et git sera maintenant en mesure de maintenir ce répertoire dans le référentiel.