544 votes

Devriez-vous commettre .gitignore dans les dépôts Git ?

Pensez-vous que c'est une bonne pratique de commettre .gitignore dans un repo Git ?

Certaines personnes n'aiment pas cela, mais je pense que c'est une bonne chose car vous pouvez suivre l'historique du fichier. N'est-ce pas ?

41 votes

Si vous ne le faites pas, mettez .gitignore dans .gitignore...

0 votes

0 votes

@CharlesB Désolé, mais la virgule dans votre commentaire fait que je ne suis pas sûr de ce que vous voulez dire...

540voto

Bruce Stephens Points 2012

Normalement oui, .gitignore est utile pour tous ceux qui veulent travailler avec le référentiel. À l'occasion, vous voudrez ignorer des choses plus privées (peut-être créez-vous souvent des fichiers LOG ou autre. Dans ces cas-là, vous ne voulez probablement pas imposer cela à quelqu'un d'autre.

145 votes

+1 Les "choses privées" peuvent être mentionnées dans la $GIT_DIR/info/exclude o ~/.gitconfig comme il convient.

10 votes

Si un fichier est déjà enregistré et que vous voulez l'ignorer, Git n'ignorera pas le fichier si vous ajoutez une règle plus tard. Dans ce cas, vous devez d'abord désarchiver le fichier, en exécutant la commande suivante dans votre terminal : git rm --cached FILENAME

149voto

Shtééf Points 10444

En général, vous faire 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 pas vraiment spécifiques au projet. Par exemple, votre éditeur de texte peut créer des *~ des fichiers de sauvegarde, ou un autre exemple serait le .DS_Store 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 mettez-les plutôt dans un fichier d'exclusion global.

Par défaut, ce fichier réside dans $XDG_CONFIG_HOME/git/ignore (la valeur par défaut est ~/.config/git/ignore ), mais cet emplacement peut être modifié en définissant l'option core.excludesfile option. Par exemple :

git config --global core.excludesfile ~/.gitignore

Il suffit de créer et de modifier le fichier d'exclusion global comme bon vous semble ; il s'appliquera à tous les dépôts git sur lesquels vous travaillez sur cette machine.

16 votes

Vous pouvez toujours ajouter # some comment lignes vers le .gitignore pour expliquer pourquoi vous ignorez quelque chose. Commenter chaque ligne est un peu exagéré, mais j'ai des sections étiquetées comme suit # IDE (Eclipse) , # OS (Mac OS X) y # Generated (Perl) . Ainsi, si quelqu'un veut utiliser un autre système d'exploitation ou un autre IDE, il peut ajouter une section et nous pouvons tous partager.

11 votes

Thumbs up for "Je vais personnellement jusqu'à m'assurer que mon index est toujours propre lorsque je ne travaille pas sur quelque chose. (Le statut de git ne devrait rien montrer.)"

4 votes

Nb. avec le Git moderne, la valeur par défaut pour les core.excludesfile es ~/.config/git/ignore conforme à la spécification de l'annuaire de base XDG.

13voto

Bitdiot Points 191

J'ai mis le commit .gitignore, qui est une courtoisie pour les autres qui peuvent construire mon projet que les fichiers suivants sont dérivés et doivent être ignorés.

Je fais généralement un hybride. J'aime faire en sorte que le makefile génère le fichier .gitignore puisque le makefile connaîtra tous les fichiers associés au projet - dérivés ou non. Ensuite, il y a un projet de niveau supérieur .gitignore que vous vérifiez, qui ignore les fichiers .gitignore générés par le fichier makefile pour les différents sous-répertoires.

Ainsi, dans mon projet, je pourrais avoir un sous-répertoire bin avec tous les exécutables construits. Ensuite, je vais demander à mon makefile de générer un .gitignore pour ce répertoire bin. Et dans le répertoire supérieur .gitignore qui liste bin/.gitignore. Celui du haut est celui que je vérifie.

1voto

user3464496 Points 1

Commettre .gitignore peut être très utile mais vous devez vous assurer que vous ne le modifiez pas trop par la suite surtout si vous passez régulièrement d'une branche à l'autre. Si vous le faites, il peut arriver que des fichiers soient ignorés dans une branche et pas dans l'autre, vous obligeant à supprimer ou renommer manuellement des fichiers dans votre répertoire de travail parce qu'un checkout a échoué car il aurait écrasé un fichier non suivi.

Par conséquent, oui, faites un commit de votre .gitignore, mais pas avant d'être raisonnablement sûr qu'il ne changera pas beaucoup par la suite.

-8voto

Jakub Narębski Points 87537

Il s'agit d'une bonne pratique pour .gitignore au moins vos produits de construction (programmes, *.o, etc.).

11 votes

Cela n'a pas répondu à la question : est-ce que .gitignore lui-même être " .gitignore 'd" ?

6 votes

Faites attention, que n'était pas la question, et ce fait répondre à ce qui a été demandé : "Est-ce une bonne pratique de commettre un .gitignore dans un repo Git ?".

5 votes

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X