Où est écrit git config --global?

1025

Lors de l'utilisation git config --globalpour configurer les choses, dans quel fichier écrit-il?

Exemple:

git config --global core.editor "blah"

Je ne le trouve pas à ces endroits:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

Je n'ai pas défini d'ENV?

Ma version Git: 1.6.5.1.1367.gcd48 - sur Windows 7

Ian Vaughan
la source
1
Utilisez-vous msysgit ou autre chose?
codeguru
359
git config --global --editdevrait vous dire l'emplacement exact quel que soit le type de configuration que vous avez - il suffit de regarder quel fichier apparaît dans votre éditeur.
MatrixFrog
55
git config --global --lista également été utile lorsqu'il n'existe pas car il a indiqué l'emplacement où git l'attend.
AJP
4
@AJP: C'est exactement mon problème, mais comment changer d'où il veut l'enregistrer / le lire ??
Stijn de Witt
1
git config --list --show-origin vous indiquera l'emplacement
eddyP23

Réponses:

1241

Mise à jour 2016: avec git 2.8 (mars 2016), vous pouvez simplement utiliser:

git config --list --show-origin

Et avec Git 2.26 (T1 2020), vous pouvez ajouter une --show-scopeoption

git config --list --show-origin --show-scope

Vous verrez quelle configuration est placée où.
Voir " D'où viennent les paramètres de ma configuration Git? "

Comme Steven Vascellaro souligne dans les commentaires ,

il fonctionnera avec des emplacements d'installation non standard. (c'est-à-dire Git Portable )

(comme le dernier PortableGit-2.14.2-64-bit.7z.exe, qui peut être décompressé où vous voulez)


Réponse originale (2010)

De la documentation :

--global

Pour les options d'écriture: écrivez dans un ~/.gitconfigfichier global plutôt que dans le référentiel .git/config.

Puisque vous utilisez Git pour Windows , il se peut que l'emplacement auquel cela correspond ne soit pas clair. Mais si vous regardez etc / profile (in C:\Program Files\Git), vous verrez:

HOME="$HOMEDRIVE$HOMEPATH"

Sens:

C:\Users\MyLogin

(sous Windows 7)

Cela signifie que le fichier est C:\Users\MyLogin\.gitconfigdestiné à Git dans Windows 7.

VonC
la source
8
J'étais vraiment stupide, je n'ai pas ajouté le drapeau "--global" à la commande d'édition! "git config --global --edit" montrait le fichier avec toutes mes modifications de configuration, "git config --edit" était le fichier que je continuais à ouvrir et à penser, où est cet élément de configuration éditeur / comparer / etc que je viens de définir! Merci beaucoup.
Ian Vaughan
6
Merci. J'ai vu d'autres endroits où il était dit que c'était à% USERPROFILE%. Sur mon ordinateur, HOMEDRIVE et HOMEPATH sont remappés sur un lecteur réseau. Les recherches sur mon disque local n'aboutissaient à rien. Cela a donc beaucoup aidé.
Mike M. Lin
2
Vraiment utile, j'avais le même problème - si vous êtes sur un domaine avec un lecteur domestique mappé, il essaiera de créer la configuration git là-bas. Cela ferait une bonne demande de fonctionnalité - utilisez% HOMEDRIVE% ou% USERPROFILE%
plasmid87
2
Pourquoi est-ce appelé global, alors que ce n'est que pour un seul utilisateur? Ne serait pas (pour unix) /etc/gitconfig"global" et ~/.gitconfigseulement "local" ..... et je suppose .git/config"hyper-local" ----- Fondamentalement, je trouve le terme "global" pour cette confusion, et je se demandait s'il y avait une bonne raison pour la nomenclature?
Peter Ajtai
7
@PeterAjtai "global" car c'est pour tout votre référentiel. Par opposition à "local" (seulement pour un repo) ou "système" (qui est pour tous les repo, pour tous les utilisateurs)
VonC
123

Je cherchais aussi le global .gitconfig sur ma machine Windows et j'ai trouvé cette astuce intéressante en utilisant git.

Faites un: git config --global -epuis, si vous êtes chanceux, vous obtiendrez un éditeur de texte chargé avec votre .gitconfigfichier global . Recherchez simplement le dossier à partir de là (ou essayez d'enregistrer sous ...), et voilà! :-)

FURIEUX
la source
Exactement ce que je cherchais! la commande -e! Parce que la modification d'une propriété à la fois n'est tout simplement pas mon idée.
Patareco
1
L'exécution de cette commande créera également un C:\Users\<user_name>\.gitconfigs'il est manquant.
pmbanka
Je cours en mode sans fenêtre et je ne trouve l'emplacement nulle part
Triynko
73

Sur * nixes, c'est dans ~/.gitconfig . Y a-t-il un fichier correspondant chez vous?

Sous Windows, vous pouvez taper git bash

notepad ~/.gitconfig
Ben
la source
6
Cela devrait être le même sur les fenêtres.
Felix Kling
2
Si vous voulez y accéder facilement, écrire un alias :) Ici est le mien: alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Utilisez l'éditeur de texte de votre choix.
août
43

Les chemins pour msysgit sont:

Windows XP -C:\Documents and Settings\<user_name>\.gitconfig

Windows Vista + C:\Users\<user_name>\.gitconfig

hacher
la source
17
Il est probablement préférable de décrire cela comme% USERPROFILE%, alors la réponse fonctionnera pour toutes les versions de Windows, passées, présentes et futures.
jarmod
3
Sauf que je pense que c'est en fait% HOMEDRIVE %% HOMEPATH% comme dans d'autres réponses, ce qui est égal à% USERPROFILE% dans de nombreux cas, mais certains d'entre nous ont des configurations informatiques le pointant vers un lecteur mappé à la place.
ojchase
34

L'emplacement global est dérivé, sur Windows MsysGit, à l'aide des variables d'environnement HOMEDRIVE et HOMEPATH, sauf si vous avez défini une variable d'environnement HOME. Le est détaillé dans le script 'profile'.

Dans mon environnement d'entreprise, le HOMEDRIVE est H :, qui est ensuite mappé sur une URL réseau \\ share \ $. Le tout est ensuite mappé pour être "Mes documents", ce qui n'est pas là où les autres pourraient s'attendre. Il peut y avoir eu d'autres problèmes avec le remappage du lecteur vers l'URL. Je n'arrive même pas à ajuster les variables HOMEDRIVE ou HOMEPATH de toute façon.

Dans mon cas, j'ai défini une variable d'environnement HOME personnelle et l'ai pointée vers D: \ git \ GitHOME et copié tous ces fichiers GIT (qui sont sans extension) dans le répertoire GitHOME pour une conservation sûre.

Les variables d'environnement Windows peuvent être définies via l'onglet Avancé de la boîte de dialogue des propriétés du Poste de travail.

Philip Oakley
la source
1
Je parcourais les réponses sur le point de publier sur les variables HOMEDRIVEet HOMEPATH, car elles m'ont juste rattrapé lors de l'utilisation de Bower. Il semble qu'un certain nombre d'utilitaires sous Windows lisent depuis <system>:\User\<username>\.gitconfig, while the Git tool itself saves to % HOMEPATH% \. Gitconfig . I had to go one step further and copy the updated config file from my H: `(notre réseau utilise la même lettre de lecteur pour cela) dans mon dossier utilisateur local, alors Git a correctement utilisé les règles lorsqu'il a été appelé par Bower.
1
@ZaLiTHkA, Dans mon réseau d'entreprise, le lecteur Home (H :) de l'utilisateur est lui aussi remappé à l'emplacement C: \ User \, donc je ne l'avais pas remarqué. Si vous pouvez identifier quels sont les utilitaires FOSS qui font l'erreur, ce serait des informations utiles pour vous aider à signaler / réparer ces outils. S'il s'agit d'outils internes à l'entreprise, vous êtes seul ;-)
Philip Oakley
À moins que ce ne soit plus compliqué qu'une simple ligne de définition, je ne vois pas HOME défini dans le script etc \ profile. Il semble toujours agir comme décrit, mais je ne sais pas où HOME est défini de nos jours.
ojchase
@ojchase Ma partie de la réponse de l'endroit où --glob config est écrit se rapporte spécifiquement à Windows. Le noyau Linux git écrit dans des endroits tels que où le truc XDG dirige (c'est-à-dire que je suis conscient que Linux écrit dans d'autres endroits et a d'autres conventions, et surtout qu'il a un répertoire racine tandis que Windows a des «lecteurs» ;-)
Philip Oakley
@PhilipOakley Je faisais également référence à Windows; désolé je n'étais pas clair. En combinant votre réponse et d'autres, je m'attendais à une sorte de ligne HOME = $HOMEDRIVE$HOMEPATH(ou similaire) C:\Program Files\Git\etc\profileet cette ligne ne semble pas exister, mais probablement utilisée? Je n'ai pas pu comprendre exactement ce qui définit $ HOME à moins qu'il ne soit défini par une variable d'environnement que je préférerais ne pas faire.
ojchase
12

Si vous utilisez TortoiseGit sur un PC Windows, vous pouvez utiliser:

Settings / Git / Config / Edit global .gitconfig

pour ouvrir le fichier global .gitignore.

Mais si vous utilisez votre PC Windows (7) dans un domaine, votre répertoire de profil peut être un partage réseau (monté en tant que lecteur). Dans ce cas, TortoiseGit (au moins: 1.6.5.0) vous pointe vers le mauvais répertoire (sur c: ...). Voir le numéro 922 de TortoiseGit fermé pour plus d'informations. Ou en utilisant% HOMEDRIVE %% HOMEPATH% pour ouvrir le répertoire contenant le fichier .gitignore.

DanielaWaranie
la source
10

J'utilise SmartGit avec msysgit sur Windows 8.1 et j'ai remarqué qu'il peut y avoir trois emplacements différents pour le gitconfigfichier:

%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig

Mais celui qui est utilisé est celui de %USERPROFILE%\.gitconfig.

Benny Neugebauer
la source
6

Il peut être utile de noter (pour les plates-formes * nix): certains types de configuration / informations git globales sont stockés dans /usr/share/git-core/, tels que les scripts d'autocomplétion git et les hooks suivants (par défaut):

  • applypatch-msg
  • post-mise à jour
  • pré-commit
  • prepare-commit-msg
  • commit-msg
  • pré-application
  • pré-rebaser
  • mise à jour

Chacun d'eux peut contenir son propre ensemble de commandes à exécuter, au moment décrit par leurs noms de fichiers respectifs.

samstav
la source
2
Pas utile pour la question OP.
orbfish
5

J'ai aussi eu un problème avec mon global .gitconfig C'est pour le cas que quelqu'un a aussi cet étrange

git a dit:

fatal: une erreur inconnue s'est produite lors de la lecture des fichiers de configuration

Maintenant, je l'ai corrigé. Le problème était une seconde .gitconfigdans ce dossier:

c: \ Users \ myUser.config \ git \ config

Je ne sais pas d'où ça vient ... Mais maintenant tout fonctionne à nouveau comme un charme.

Crinière
la source
5

Quand le fichier global .gitconfig est-il créé?

Tout d'abord, git ne crée pas automatiquement le fichier de configuration global (.gitconfig) lors de son installation. Le fichier n'est pas créé jusqu'à ce qu'il soit écrit pour la première fois. Si vous n'avez jamais défini de variable système, elle ne sera pas sur votre système de fichiers. Je suppose que cela pourrait être la source du problème.

Une façon de demander à Git de le créer est de demander une modification. Cela forcera la création du fichier.

git config --global --edit

Si vous surveillez le dossier de départ de l'utilisateur lorsque vous exécutez cette commande, vous verrez le fichier .gitconfig apparaître comme par magie.

Où est stockée la configuration git?

Voici un bref aperçu du nom et de l'emplacement des fichiers de configuration associés aux trois étendues Git, à savoir système , global et local :

  • Configuration de System Git: fichier nommé gitconfig situé dans -git-install-location- / ming <32> / etc
  • Configuration globale de Git: fichier nommé .gitconfig situé dans le dossier personnel de l'utilisateur (C: \ Users \ git user)
  • Configuration Git locale: fichier nommé config dans le dossier .git du dépôt local

Bien sûr, voir c'est croire, alors voici une image montrant chaque fichier et chaque emplacement. J'ai tiré l'image d'un article que j'ai écrit sur le sujet.

Emplacements des fichiers de configuration de Windows Git (TheServerSide.com)

Emplacement des fichiers de configuration Git

Cameron McKenzie
la source
1
il y a un quatrième endroit appelé la config portable: ici ils mentionnent les 4 endroits; Git pour Windows prend en charge quatre niveaux de configuration. Au niveau le plus bas se trouvent les paramètres de configuration spécifiques à la machine connus sous le nom de "portable" et vivent un "% ProgramData% \ Git \ config"
Badr Elmers
1
L'esprit soufflé! Je vais mettre à jour l'article avec les nouvelles informations. À votre santé!
Cameron McKenzie
4

J'utilise Windows 7 et j'utilise git comme configuration en suivant les instructions sur GitHub (un an ou deux en arrière). Un cas d'utilisation assez courant, j'aurais pensé. Aucune des réponses ci-dessus ne m'a aidé, et après beaucoup de frustration, j'ai finalement trouvé mon «vrai» fichier gitconfig dans le répertoire suivant;

C: \ Users \ Bill \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ etc

Remplacez évidemment votre nom d'utilisateur et probablement le suffixe après PortableGit_ est un GUID unique ou similaire.

Bill Forster
la source
1
Ce n'est le cas que lors de l'utilisation de GitHub pour Windows.
Snake
3

Je pense qu'il est important de poster cette citation:

Git pour Windows prend en charge quatre niveaux de configuration. Au niveau le plus bas se trouvent les paramètres de configuration spécifiques à la machine connus sous le nom de "portable" et qui contiennent un "% ProgramData% \ Git \ config". Un niveau de priorité nous concerne les paramètres de configuration spécifiques à l'installation appelés "système", qui se trouvent dans "\ mingw64 \ etc \ gitconfig". Ces deux fichiers de configuration nécessitent généralement des privilèges élevés pour être modifiés.

En commençant par les valeurs spécifiques à l'utilisation appelées configuration "globale", qui se trouvent dans "% UserProfile% .gitconfig", nous trouvons les fichiers de configuration "modifiables par l'utilisateur". Les paramètres de configuration les plus prioritaires se trouvent dans la configuration "locale", qui se trouve généralement dans ".git \ config".

Il voit la recommandation dans le blog lié est de modifier les paramètres de configuration spécifiques "système" ou "installation", ce qui est bien, mais les utilisateurs doivent s'attendre à ce que d'autres installations de Git n'absorbent pas ces paramètres. Si vous souhaitez des paramètres à l'échelle de la machine, utilisez le fichier de configuration "portable", sinon choisissez les fichiers de configuration "global" ou "local".

Espérons que les gens trouvent ces informations utiles.

la source

Badr Elmers
la source
3

Comme @MatrixFrog l'a souligné dans son commentaire , si le but est de modifier la configuration, vous voudrez peut-être exécuter:

git config --global --edit

Cette commande ouvrira le fichier de configuration (dans ce cas, --globalcelui) dans l'éditeur de votre choix et attendra la fermeture du fichier (comme pendant git rebase -i).

Dmitry Parzhitsky
la source
Vous pouvez l'utiliser pour déterminer où le global .gitconfig situé est -. Tant que votre éditeur vous indique quel répertoire se trouve le fichier Vous pouvez également utiliser d' autres commutateurs ( --system, --local, etc.) pour trouver et modifier d' autres .gitconfigendroits. PS -eest le même que--edit
LightCC
1

Désinstallez Msysgit et installez Cygwin + Git. Le «.gitconfig» global sera alors ici: C: \ cygwin (64) \ home \ [nom d'utilisateur] \. Gitconfig.

Maintenant, vous n'avez plus à vous soucier d'une variable d'environnement qui peut être utilisée par d'autres programmes. Par exemple, ma variable d'environnement m'a indiqué un lecteur mappé dans mon environnement de domaine Windows Work. Je ne veux pas que mon .gitconfig global soit assis sur mon lecteur mappé "home". Je ne sais pas non plus ce qui pourrait arriver à d'autres applications qui pourraient s'appuyer sur cette variable d'environnement Windows. La division des opérations peut avoir besoin que cette variable d'environnement soit définie sur le lecteur mappé pour une raison.

De plus, vous n'avez pas à vous soucier que Mysysgit écrase vos paramètres de configuration de «profil» si vous spécifiez un chemin spécifique vers le «.gitconfig» global, en utilisant cette méthode.

En général, enregistrez-vous et utilisez cygwin bash shell dans Windows et soyez plus heureux

meffect
la source
1

J'ai eu un problème similaire; le problème était que le .gitconfigfichier se trouvait dans

C:\Users\MyLogin\.gitconfig\

(sous Windows 7)

En d'autres termes, le fichier était situé dans C:\Users\MyLogin\.gitconfig\.gitconfig, au lieu de activé C:\Users\MyLogin\.gitconfig(c'est là que Git recherchait les fichiers).

rolandog
la source
1

.gitconfig emplacement du fichier

test macOS OK

global

# global config
$ cd ~/.gitconfig

# view global config
$ git config --global -l

local

# local config
$ cd .git/config

# view local config
$ git config -l

peut-être un bonus pour vous: Vimou VSCodepour modifier la configuration git


# open config with Vim

# global config
$ vim ~/.gitconfig

# local config
$ vim .git/config


# open config with VSCode

# global config
$ code ~/.gitconfig

# local config
$ code .git/config
xgqfrms
la source
0

J'avais installé mon Git dans: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

KikeSP
la source