Quelles sont les différences entre .gitignore
et .gitkeep
? S'agit-il de la même chose avec un nom différent, ou remplissent-ils tous les 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 ne peut pas ajouter un répertoire complètement vide . Les personnes qui souhaitent suivre les répertoires vides dans Git ont créé la convention de placer les fichiers appelés .gitkeep
dans ces répertoires. Le fichier peut s'appeler n'importe quoi; Git n'accorde aucune signification particulière à ce nom.
Il existe une convention concurrente consistant à ajouter un .gitignore
fichier aux répertoires vides pour les suivre, mais certaines personnes voient cela comme déroutant car le but est de conserver les répertoires vides, pas de les ignorer; .gitignore
est également utilisé pour répertorier les fichiers qui devraient être ignorés par Git lors de la recherche de fichiers non suivis.
README
fichier dans le sous-répertoire par ailleurs vide qui contient un peu d'informations sur l'utilisation de ce sous-répertoire? Cela semble déroutant d'avoir un fichier appelé.gitkeep
qui ne fait pas réellement partie de git..gitignore
fichier avec deux lignes:*
et!.gitignore
est plus que suffisamment clair pour transmettre ce qui se passe. Si plus d'élaboration est nécessaire, ajoutez un commentaire en haut du fichier en utilisant la#
syntaxe..keep
fichiers au lieu de.gitkeep
conserver ces dossiers vides, car git n'est pas le seul système de contrôle de source qui ne suit pas les dossiers vides. Plus de détails ici: github.com/rails/rails/issues/2800.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 répertoire vide et assurez-vous qu'il reste «propre» pour Git, créez un
.gitignore
contenant les lignes suivantes dans:Si vous souhaitez qu'un seul type de fichiers soit visible par Git, voici un exemple de filtrage de tout, à l'exception de .gitignore et de tous les
.txt
fichiers:('#' indique des commentaires.)
la source
!
devant.gitignore
? Est-ce pour échapper au point?!
nie la partie suivante, comme il le fait habituellement en programmation.!.gitignore
dans un fichier git ignorer, soit ajouter le fichier puis le modifier, ou la force ajouter avec le contenu approprié ( « * » pour ignorer tout ou rien à faire simplement que le dossier existe) autre exemple .Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------ Si ce n'est pas le cas, et que vous n'effectuez pas un ajout forcé, vous pouvez l'oublier. Dans les cas triviaux, pas de problème, mais s'il s'agit d'un fichier plus volumineux, vous pourriez être contrarié. L'utilisation!.gitignore
vous empêche de vous tirer une balle dans le pied. Je le préfère, après m'être brûlé par le passé.est un fichier texte comprenant une liste de fichiers dans votre répertoire que git ignorera ou n'ajoutera pas / mettra à jour dans le référentiel.
Étant donné que Git supprime ou n'ajoute pas de répertoires vides à un référentiel, .gitkeep est une sorte de hack (je ne pense pas qu'il soit officiellement nommé comme faisant partie de Git) pour conserver des répertoires vides dans le référentiel.
Faites simplement un
touch /path/to/emptydirectory/.gitkeep
pour ajouter le fichier, et Git sera désormais en mesure de maintenir ce répertoire dans le référentiel.la source
.gitignore
s que vous le souhaitez, si vous ne souhaitez pas spécifier le chemin d'accès complet à chaque dossier à chaque fois..gitkeep
fichier, mais il ne suivra pas les répertoires vides, seule la piste du dossier où le.gitkeep
fichier existe. pourquoi.gitignore
s vous éviterait- il de spécifier le chemin complet vers chaque dossier à chaque fois? Je pense que je manque quelque chose d'évident.