90 votes

Git global ignore ne fonctionne pas

J'ai créé le fichier .gitignore_global et le mettre dans mon répertoire d'installation git. Quand je lance la commande :

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

les règles dans le fichier ignore ne sont pas appliquées à mes commits.

Lorsque je renomme le fichier .gitignore et le mettre dans mon projet Root, les règles s'appliquent.

Qu'est-ce qui ne va pas ici ?

1 votes

@Jarrod ` ~/.gitignore_global` était ce que le PO voulait dire et juste une erreur de frappe dans le post, bien qu'il ait accepté ma réponse, donc votre édition n'est pas bonne.

0 votes

Cela répond-il à votre question ? Ignorance globale de Git

1 votes

J'ai atterri sur cette question parce que ça ne marchait pas pour moi aussi. Mon problème était d'écrire core.excludesfile au lieu de core.excludesFile avec un petit F. J'espère que cela aidera toute personne qui se retrouvera dans une situation similaire.

181voto

CharlesB Points 27070

Peut-être que tu dois le faire :

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

Et pour prendre un café.

0 votes

Désolé, c'est ce que je voulais dire. Celle que j'ai copiée, c'était juste pour voir ce qui marchait.

0 votes

C'est vrai pour le café et les dents. Etes-vous sûr que .gitignore_global est dans votre $HOME ? Vous dites que vous l'avez installé dans le répertoire d'installation de git ?

0 votes

Une idée de la raison pour laquelle il ne fonctionne toujours pas ici ? J'ai un fichier .7z que je veux ignorer ; j'ai ajouté ces règles : gist.github.com/octocat/9257657 ; et après avoir modifié le fichier, il est toujours versionné sur .git :(

91voto

Max MacLeod Points 8425

J'ai pensé que je pourrais participer à ça. Il y a une autre raison pour laquelle le fichier global ignore ne semble pas fonctionner. C'est quelque chose qui, je pense, n'a pas été abordé dans les réponses précédentes. C'est tellement évident que bien sûr - c'est très facile à manquer.

C'est, que git ignorera uniquement les nouveaux fichiers . Si le fichier est déjà suivi par git, alors bien sûr git ne l'ignorera pas ! Donc, quels que soient les motifs dans un gitignore o exclude fichier ne pas appliquer .

C'est logique. Pourquoi git voudrait-il ignorer les modifications des fichiers qu'il suit déjà ? Si le fichier doit être ignoré, vous devez d'abord dire à git de ne pas le suivre, puis git l'ignore comme décrit dans le manuel. Pour plus d'informations sur la façon de dé-pister les fichiers, voir cette réponse .

Tout cela m'amène à demander s'il est possible d'ignorer les modifications apportées aux fichiers suivis. Là encore, git répond. Cette réponse ; Git : Ignorer les fichiers suivis nous donne la commande (remplacer file avec le fichier que vous voulez ignorer) :

git update-index --assume-unchanged file

Enfin, voici quelques informations supplémentaires sur le débogage de git ignore.

El Page de manuel de gitignore(5) nous dit :

Les modèles qu'un utilisateur veut que Git ignore dans toutes les situations (par exemple, les fichiers de sauvegarde ou temporaires générés par l'éditeur de choix de l'utilisateur) vont généralement dans un fichier spécifié par core.excludesfile dans le fichier ~/.gitconfig de l'utilisateur. Sa valeur par défaut est $XDG_CONFIG_HOME/git/ignore. Si $XDG_CONFIG_HOME n'est pas défini ou est vide, $HOME/.config/git/ignore est utilisé à la place.

Il s'agit donc d'une nouveauté qui remplace la précédente ~/.gitignore_global mentionné précédemment.

Ensuite, et c'est vraiment utile, nous disposons depuis la version 1.8.2 d'excellents outils de débogage. Jetez-y un coup d'oeil :

Git apprend à mieux ignorer - Nouveau dans la version 1.8.2

Ceci montre comment utiliser la nouvelle check-ignore pour vérifier que git ignore bien vos patrons, par ex.

git check-ignore bin/a.dll --verbose

14voto

XP84 Points 638

J'ai constaté que lorsque j'avais défini le global core.excludesfile comme ça :

git config --global core.excludesfile $HOME/.config/git/ignore

ça n'a pas marché. En le changeant pour ne pas utiliser le $HOME variable, comme ceci :

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

il a immédiatement commencé à fonctionner. J'espère que cela aidera quelqu'un d'autre.

FYI :

$ git --version
git version 1.7.10.2 (Apple Git-33)

0 votes

J'ai aussi observé ceci. J'ai parcouru la documentation mais je n'ai rien trouvé : En plus de .gitignore (par répertoire) et .git/info/exclude, git regarde dans ce fichier pour des modèles de fichiers qui ne sont pas censés être suivis. "~/" est étendu à la valeur de $HOME et "~user/" au répertoire personnel de l'utilisateur spécifié.

9voto

VonC Points 414372

Note : le démarrage git1.7.12 (août 2012) :

La valeur de :

  • core.attributesfile a pour valeur par défaut $HOME/.config/git/attributs et
  • core.excludesfile La valeur par défaut est $HOME/.config/git/ignore respectivement lorsque ces fichiers existent.

Ainsi, si vous créez un $HOME/.config/git/attributes vous n'avez même pas besoin de configurer votre fichier core.excludesfile réglage.

4voto

Le fichier doit se trouver dans votre répertoire personnel. Sous Windows, cela signifie généralement : C:\documents et les paramètres [utilisateur].

Sous linux, c'est : /home/[utilisateur]

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