Pensez-vous que c'est une bonne pratique de valider .gitignore dans un dépôt Git?
Certaines personnes ne l'aiment pas, mais je pense que c'est bien car vous pouvez suivre l'historique du fichier. N'est-ce pas?
Pensez-vous que c'est une bonne pratique de valider .gitignore dans un dépôt Git?
Certaines personnes ne l'aiment pas, mais je pense que c'est bien car vous pouvez suivre l'historique du fichier. N'est-ce pas?
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 souvent LOG
ou quelque chose. Dans ces cas, vous ne voudrez probablement pas imposer cela à quelqu'un d'autre.
$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:
git config --global core.excludesfile ~/.gitignore
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.
# 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 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.
C'est une bonne pratique pour .gitignore
au moins vos produits de build (programmes, * .o, etc.).
.gitignore
-il être lui-même " .gitignore
'd"?