web-dev-qa-db-fra.com

Quelle est la priorité concernant la configuration de git?

Si je définis la configuration sur mon ~/.gitconfig fichier, quelle configuration le remplacerait-il?

  • configuration au niveau du projet: .git/config
  • configuration au niveau du système: /etc/gitconfig
30
djangofan

Depuis le manuel Git (lire http://git-scm.com/docs/git-config#FILES )

S'il n'est pas défini explicitement avec --file, il y a quatre fichiers dans lesquels git config recherchera les options de configuration:

$ (préfixe)/etc/gitconfig

Fichier de configuration à l'échelle du système.

$ XDG_CONFIG_HOME/git/config

Deuxième fichier de configuration spécifique à l'utilisateur. Si $ XDG_CONFIG_HOME n'est pas défini ou vide, $ HOME/.config/git/config sera utilisé. Toute variable à valeur unique définie dans ce fichier sera remplacée par ce qui se trouve dans ~/.gitconfig. C'est une bonne idée de ne pas créer ce fichier si vous utilisez parfois des versions plus anciennes de Git, car la prise en charge de ce fichier a été ajoutée assez récemment.

~/.gitconfig

Fichier de configuration spécifique à l'utilisateur. Aussi appelé fichier de configuration "global".

$ GIT_DIR/config

Fichier de configuration spécifique au référentiel.

Si aucune autre option n'est donnée, toutes les options de lecture liront tous ces fichiers disponibles. Si le fichier de configuration global ou à l'échelle du système n'est pas disponible, il sera ignoré. Si le fichier de configuration du référentiel n'est pas disponible ou lisible, git config se fermera avec un code d'erreur différent de zéro. Cependant, dans aucun cas, un message d'erreur ne sera émis.

Les fichiers sont lus dans l'ordre indiqué ci-dessus, la dernière valeur trouvée ayant priorité sur les valeurs lues plus tôt. Lorsque plusieurs valeurs sont prises, toutes les valeurs d'une clé de tous les fichiers seront utilisées.

22
Michael

Priorité la plus faible à la plus élevée:

  • /etc/gitconfig: à l'échelle du système, modifié lorsque --system le paramètre est utilisé
  • ~/.gitconfig: configuration spécifique à l'utilisateur, modifiée lorsque --global le paramètre est utilisé
  • .git/config: configuration spécifique au référentiel
51
Michael Kohl