web-dev-qa-db-fra.com

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 remplissent-ils tous deux une fonction différente? Je ne semble pas pouvoir trouver beaucoup de documentation sur .gitkeep.

1714
Matty

.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.

3081
Wooble

.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.)

287
sjas
.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.

118
Jim Munro