web-dev-qa-db-fra.com

Devez-vous engager .gitignore dans les dépôts Git?

Pensez-vous que c’est une bonne pratique d’engager .gitignore dans un dépôt Git?

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

446
Howard

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

447
Bruce Stephens

Vous avez généralement do commit .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 afficher.)

Dans certains cas, vous souhaitez ignorer des éléments qui ne sont pas spécifiques à un projet. Par exemple, votre éditeur de texte peut créer des fichiers de sauvegarde automatique *~ ou un autre exemple serait le fichier .DS_Store créé par OS X.

Je dirais que si d’autres se plaignent de ces règles encombrant votre .gitignore, laissez-les de côté et placez-les plutôt dans un fichier d’exclusions 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. Par exemple:

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

Créez et modifiez simplement le fichier d'exclusion global au contenu de votre coeur; cela s'appliquera à tous les référentiels git sur lesquels vous travaillez.

124
Stéphan Kochen

Je mets commit .gitignore, ce qui est une courtoisie pour ceux 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 faire en sorte que makefile génère le fichier .gitignore car ce dernier connaîtra tous les fichiers associés au projet, qu'il soit dérivé ou non. Créez ensuite un projet .gitignore de niveau supérieur que vous archivez, qui ignorerait les fichiers .gitignore générés créés par le fichier makefile pour les divers sous-répertoires.

Donc, dans mon projet, je pourrais avoir un sous-répertoire bin avec tous les exécutables construits. Ensuite, mon fichier make 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'ai enregistré.

11
Bitdiot