Normalement, il .gitignoreest utile pour tous ceux qui souhaitent travailler avec le référentiel. À l'occasion, vous voudrez ignorer des choses plus privées (peut-être que vous créez souvent LOGou quelque chose. Dans ces cas, vous ne voudrez probablement pas imposer cela à quelqu'un d'autre.
+1 Les "objets privés" peuvent être mentionnés dans le $GIT_DIR/info/excludeou les ~/.gitconfigfichiers selon le cas.
WReach
5
Si vous avez déjà un fichier archivé et que vous souhaitez l'ignorer, Git n'ignorera pas le fichier si vous ajoutez une règle ultérieurement. Dans ces cas, vous devez d'abord décompresser le fichier, en exécutant la commande suivante dans votre terminal:git rm --cached FILENAME
eli-bd
133
En général , vous faites commettre .gitignore. En fait, je vais personnellement jusqu'à m'assurer que mon index est toujours propre lorsque je ne travaille pas sur quelque chose. ( git statusne devrait rien montrer.)
Il y a des cas où vous voulez ignorer des choses qui ne sont vraiment pas spécifiques au projet. Par exemple, votre éditeur de texte peut créer *~des fichiers de sauvegarde automatique , ou un autre exemple serait les .DS_Storefichiers créés par OS X.
Je dirais que si d'autres se plaignent de ces règles qui encombrent votre .gitignore, laissez-les de côté et placez-les plutôt dans un fichier d'exclusion global.
Par défaut, ce fichier réside $XDG_CONFIG_HOME/git/ignore(par défaut ~/.config/git/ignore), mais cet emplacement peut être modifié en définissant l' core.excludesfileoption. Par exemple:
Créez et modifiez simplement le fichier d'exclusion global au contenu qui vous tient à cœur; cela s'appliquera à chaque référentiel git sur lequel vous travaillez sur cette machine.
Vous pouvez toujours ajouter des # some commentlignes au .gitignorefichier pour expliquer pourquoi vous ignorez quelque chose. Commentant chaque ligne est un peu exagéré, mais j'ont des sections étiquetés # IDE (Eclipse), # OS (Mac OS X)et # Generated (Perl). De cette façon, si quelqu'un veut utiliser un autre système d'exploitation ou IDE, il peut ajouter une section et nous pouvons tous partager.
Stuart R. Jefferys
9
"Je vais personnellement jusqu'à m'assurer que mon index est toujours propre lorsque je ne travaille pas sur quelque chose. (Le statut git ne devrait rien montrer.")
SGhosh
4
Nb. avec Git moderne, la valeur par défaut de core.excludesfileest ~/.config/git/ignore, conforme aux spécifications du répertoire de base XDG
Jakub Narębski
1
+1 pour global .gitignore- Extrêmement bénéfique lorsque les personnes avec lesquelles vous travaillez ne sont pas d'accord sur le contenu des .gitignorefichiers poussés ou si elles doivent être poussées, et nous utilisons tous des tonnes d'environnements de développement différents qui génèrent différents types de bruit.
Je mets commit .gitignore, qui est une courtoisie envers les autres qui peuvent construire mon projet que les fichiers suivants sont dérivés et doivent être ignorés.
Je fais habituellement un hybride. J'aime que makefile génère le fichier .gitignore car le makefile connaîtra tous les fichiers associés au projet, dérivé ou non. Ensuite, ayez un projet de niveau supérieur .gitignore que vous archivez, qui ignorerait les fichiers .gitignore générés créés par le makefile pour les différents sous-répertoires.
Donc, dans mon projet, je pourrais avoir un sous-répertoire bin avec tous les exécutables construits. Ensuite, mon makefile générera un .gitignore pour ce répertoire bin. Et dans le répertoire supérieur .gitignore qui répertorie bin / .gitignore. Le premier est celui que j'enregistre.
La validation de .gitignore peut être très utile, mais vous devez vous assurer de ne pas trop la modifier par la suite, surtout si vous changez régulièrement de branche. Si vous le faites, vous pourriez obtenir des cas où les fichiers sont ignorés dans une branche et pas dans l'autre, vous forçant à supprimer manuellement ou à renommer les fichiers de votre répertoire de travail car une extraction a échoué car elle écraserait un fichier non suivi.
Par conséquent, oui, engagez votre .gitignore, mais pas avant d'être raisonnablement sûr qu'il ne changera pas grand-chose par la suite.
Cela ne répondait pas à la question: devrait .gitignore-il être lui-même " .gitignore'd"?
Charles Wood
6
Faites attention, ce n'était pas la question, et cela répond à ce qui a été demandé: "est-ce une bonne pratique de commettre .gitignore dans un dépôt Git?".
papercowboy
5
@cayuu je crois que la réponse dit "c'est une bonne pratique de .gitignore" xyz, je ne vois pas comment cela répond à la question. la question est de savoir si .gitignore doit être contrôlé par version ou non.
Réponses:
Normalement, il
.gitignore
est utile pour tous ceux qui souhaitent travailler avec le référentiel. À l'occasion, vous voudrez ignorer des choses plus privées (peut-être que vous créez souventLOG
ou quelque chose. Dans ces cas, vous ne voudrez probablement pas imposer cela à quelqu'un d'autre.la source
$GIT_DIR/info/exclude
ou les~/.gitconfig
fichiers selon le cas.git rm --cached FILENAME
En général , vous faites commettre
.gitignore
. En fait, je vais personnellement jusqu'à m'assurer que mon index est toujours propre lorsque je ne travaille pas sur quelque chose. (git status
ne devrait rien montrer.)Il y a des cas où vous voulez ignorer des choses qui ne sont vraiment pas spécifiques au projet. Par exemple, votre éditeur de texte peut créer
*~
des fichiers de sauvegarde automatique , ou un autre exemple serait les.DS_Store
fichiers créés par OS X.Je dirais que si d'autres se plaignent de ces règles qui encombrent votre
.gitignore
, laissez-les de côté et placez-les plutôt dans un fichier d'exclusion global.Par défaut, ce fichier réside
$XDG_CONFIG_HOME/git/ignore
(par défaut~/.config/git/ignore
), mais cet emplacement peut être modifié en définissant l'core.excludesfile
option. Par exemple:Créez et modifiez simplement le fichier d'exclusion global au contenu qui vous tient à cœur; cela s'appliquera à chaque référentiel git sur lequel vous travaillez sur cette machine.
la source
# some comment
lignes au.gitignore
fichier pour expliquer pourquoi vous ignorez quelque chose. Commentant chaque ligne est un peu exagéré, mais j'ont des sections étiquetés# IDE (Eclipse)
,# OS (Mac OS X)
et# Generated (Perl)
. De cette façon, si quelqu'un veut utiliser un autre système d'exploitation ou IDE, il peut ajouter une section et nous pouvons tous partager.core.excludesfile
est~/.config/git/ignore
, conforme aux spécifications du répertoire de base XDG.gitignore
- Extrêmement bénéfique lorsque les personnes avec lesquelles vous travaillez ne sont pas d'accord sur le contenu des.gitignore
fichiers poussés ou si elles doivent être poussées, et nous utilisons tous des tonnes d'environnements de développement différents qui génèrent différents types de bruit.Je mets commit .gitignore, qui est une courtoisie envers les autres qui peuvent construire mon projet que les fichiers suivants sont dérivés et doivent être ignorés.
Je fais habituellement un hybride. J'aime que makefile génère le fichier .gitignore car le makefile connaîtra tous les fichiers associés au projet, dérivé ou non. Ensuite, ayez un projet de niveau supérieur .gitignore que vous archivez, qui ignorerait les fichiers .gitignore générés créés par le makefile pour les différents sous-répertoires.
Donc, dans mon projet, je pourrais avoir un sous-répertoire bin avec tous les exécutables construits. Ensuite, mon makefile générera un .gitignore pour ce répertoire bin. Et dans le répertoire supérieur .gitignore qui répertorie bin / .gitignore. Le premier est celui que j'enregistre.
la source
La validation de .gitignore peut être très utile, mais vous devez vous assurer de ne pas trop la modifier par la suite, surtout si vous changez régulièrement de branche. Si vous le faites, vous pourriez obtenir des cas où les fichiers sont ignorés dans une branche et pas dans l'autre, vous forçant à supprimer manuellement ou à renommer les fichiers de votre répertoire de travail car une extraction a échoué car elle écraserait un fichier non suivi.
Par conséquent, oui, engagez votre .gitignore, mais pas avant d'être raisonnablement sûr qu'il ne changera pas grand-chose par la suite.
la source
C'est une bonne pratique pour
.gitignore
au moins vos produits de build (programmes, * .o, etc.).la source
.gitignore
-il être lui-même ".gitignore
'd"?