Quelles sont les différences entre .gitignore et .gitkeep?

Quelles sont les différences entre .gitignore et .gitkeep ? Sont-ils la même chose avec un nom différent, ou servent-ils tous deux une fonction différente? Je ne semble pas être capable de trouver beaucoup de documentation sur .gitkeep .

.gitkeep n’est pas documenté, car ce n’est pas une fonctionnalité de Git.

Git ne peut pas append un répertoire complètement vide . Les personnes qui souhaitent suivre des répertoires vides dans Git ont créé la convention .gitkeep à placer des fichiers appelés .gitkeep dans ces répertoires. Le fichier pourrait être appelé n’importe quoi; Git n’atsortingbue aucune signification particulière à ce nom.

Il existe une convention concurrente .gitignore à append un fichier .gitignore aux répertoires vides pour les suivre, mais certaines personnes .gitignore cela déroutant car le but est de conserver les répertoires vides, et non de les ignorer; .gitignore est également utilisé pour répertorier les fichiers devant être ignorés par Git lors de la recherche de fichiers non suivis.

.gitkeep est juste un espace réservé. Un fichier factice, donc git n’oubliera pas le répertoire, car git ne suit que les fichiers.


Si vous voulez un .gitignore vide et assurez-vous qu’il rest propre pour git, créez un .gitignore contenant les lignes suivantes dans:

 # .gitignore sample ################### # ignore all files in this dir... * # ... except for this one. !.gitignore 

Si vous souhaitez qu’un seul type de fichier 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 dans votre répertoire que git va ignorer ou ne pas append / mettre à jour dans le référentiel.

 .gitkeep 

Puisque git supprime ou n’ajoute pas les répertoires vides à un repo .gitkeep est en quelque sorte un hack (je ne pense pas qu’il soit officiellement nommé dans le cadre de git) pour conserver des répertoires vides dans le repository.

Il suffit de faire un touch /path/to/emptydirectory/.gitkeep pour append le fichier et git sera maintenant capable de maintenir ce répertoire dans le référentiel.