Dove viene scritto git config --global?


1025

Quando si utilizza git config --globalper impostare le cose, su quale file scriverà?

Esempio:

git config --global core.editor "blah"

Non riesco a trovarlo in questi posti:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

Non ho impostato un ENV?

Versione My Git: 1.6.5.1.1367.gcd48 - su Windows 7


1
Stai usando msysgit o qualcos'altro?
codeguru,

359
git config --global --editdovresti dirti la posizione esatta, indipendentemente dal tipo di installazione che hai - guarda solo quale file compare nel tuo editor.
MatrixFrog,

55
git config --global --listè stato utile anche quando non esiste in quanto indica la posizione in cui git si aspetta che sia.
AJP,

4
@AJP: Questo è esattamente il mio problema, ma come cambiare dove vuole salvarlo / leggerlo ??
Stijn de Witt,

1
git config --list --show-origin ti dirà la posizione
eddyP23

Risposte:


1240

Aggiornamento 2016: con git 2.8 (marzo 2016), puoi semplicemente usare:

git config --list --show-origin

E con Git 2.26 (Q1 2020), puoi aggiungere --show-scopeun'opzione

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

Vedrai quale configurazione è impostata dove.
Vedi "Da dove provengono le impostazioni nella mia configurazione Git? "

Come sottolinea Steven Vascellaro nei commenti ,

funzionerà con percorsi di installazione non standard. (ad es. Git Portable )

(come l'ultimo PortableGit-2.14.2-64-bit.7z.exe, che può essere decompresso ovunque tu voglia)


Risposta originale (2010)

Dai documenti :

--globale

Per le opzioni di scrittura: scrivere nel ~/.gitconfigfile globale anziché nel repository .git/config.

Dato che stai usando Git per Windows , potrebbe non essere chiaro a quale posizione corrisponda. Ma se guardi etc / profile (in C:\Program Files\Git), vedrai:

HOME="$HOMEDRIVE$HOMEPATH"

Senso:

C:\Users\MyLogin

(su Windows 7)

Ciò significa che il file è disponibile C:\Users\MyLogin\.gitconfigper Git in Windows 7.


8
Ero davvero stupido, non ho aggiunto il flag "--global" al comando di modifica! "git config --global --edit" ha mostrato il file con tutte le mie modifiche alla configurazione, "git config --edit" era il file che continuavo ad aprire e pensare, dov'è quell'elemento di configurazione dell'editor / confronto / etc che ho appena impostato! Grazie molto.
Ian Vaughan,

6
Grazie. Ho visto altri posti dove si diceva che fosse% USERPROFILE%. Sul mio computer HOMEDRIVE e HOMEPATH sono rimappati su un'unità di rete. Le ricerche sul mio disco locale non hanno prodotto nulla. Quindi questo ha aiutato molto.
Mike M. Lin,

2
Davvero utile, stavo avendo lo stesso problema: se sei su un dominio con un'unità home mappata, proverà a creare lì la configurazione git. Ciò renderebbe una buona richiesta di funzionalità - usa% HOMEDRIVE% o% USERPROFILE%
plasmid87

2
Perché questo si chiama globale, quando è solo per un utente? Non (per unix) /etc/gitconfigsarebbe "globale" e ~/.gitconfigsolo "locale" ..... e immagino .git/config"iper-locale" ----- Fondamentalmente, trovo il termine "globale" per questo confuso, e io mi chiedevo se ci fosse una buona ragione per la nomenclatura?
Peter Ajtai,

7
@PeterAjtai "globale" perché è per tutto il tuo repository. A differenza di "locale" (solo per un repository) o "sistema" (che è per tutti i repository, per tutti gli utenti)
VonC,

123

Stavo anche cercando il globale .gitconfigsul mio computer Windows e ho trovato questo trucco pulito usando git.

Fai un: git config --global -ee poi, se sei fortunato, otterrai un editor di testo caricato con il tuo .gitconfigfile globale . Basta cercare la cartella da lì (o provare a salvare come ...), e voilà! :-)


Proprio quello che stavo cercando! il comando -e! Perché modificare una proprietà alla volta non è solo il mio obiettivo.
Patareco,

1
L'esecuzione di questo comando creerà anche un C:\Users\<user_name>\.gitconfigse manca.
pmbanka,

Sto correndo in modalità senza finestre e non riesco a trovare la posizione da nessuna parte
Triynko

73

Su * nixes, è dentro ~/.gitconfig. C'è un file corrispondente nella tua casa?

Su Windows puoi digitare git bash

notepad ~/.gitconfig

6
Questo dovrebbe essere lo stesso su Windows.
Felix Kling,

2
Se si desidera ottenere facilmente ad esso, scrivere un alias :) Ecco la mia: alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Usa qualsiasi editor di testo che desideri.
Agosto

43

I percorsi per msysgit sono:

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

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


17
Probabilmente è meglio descriverlo come% USERPROFILE%, quindi la risposta funzionerà per tutte le versioni di Windows, passate, presenti e future.
jarmod,

3
Tranne che penso che in realtà sia% HOMEDRIVE %% HOMEPATH% come in altre risposte, che è uguale a% USERPROFILE% in molti casi, ma alcuni di noi hanno configurazioni IT che lo puntano invece a un'unità mappata.
ojchase,

34

La posizione globale viene derivata, su Windows MsysGit, utilizzando le variabili di ambiente HOMEDRIVE e HOMEPATH, a meno che non sia stata definita una variabile di ambiente HOME. Il dettaglio è nello script 'profilo'.

Nel mio ambiente aziendale, HOMEDRIVE è H :, che viene quindi mappato su un URL di rete \\ share \ $. L'intero lotto viene quindi mappato come "Documenti", che non è dove gli altri si aspetterebbero. Potrebbero essersi verificati ulteriori problemi con la rimappatura dell'unità verso l'URL. Non riesco nemmeno a regolare le variabili HOMEDRIVE o HOMEPATH comunque.

Nel mio caso ho definito una variabile d'ambiente HOME personale e l'ho puntata su D: \ git \ GitHOME e ho copiato tutti quei file GIT (che sono senza estensione) nella directory GitHOME per la conservazione sicura.

Le variabili di ambiente di Windows possono essere impostate tramite la scheda Avanzate nella finestra di dialogo delle proprietà di Risorse del computer.


1
Stavo scorrendo le risposte per pubblicare le variabili HOMEDRIVEe HOMEPATH, dato che mi hanno appena scoperto mentre usavo Bower. Sembra che un certo numero di utility su Windows leggano da <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: `(la nostra rete usa la stessa lettera di unità per quello) nella mia cartella utente locale, solo allora Git ha usato correttamente le regole quando chiamato da Bower.

1
@ZaLiTHkA, Nella mia rete aziendale, l'unità Home (H :) dell'utente è stata nuovamente mappata nella posizione C: \ User \, quindi non me ne sono accorta. Se riesci a identificare quali sono i programmi di utilità FOSS che commettono l'errore, queste sarebbero informazioni utili per aiutarti a tornare a riferire / correggere quegli strumenti. Se sono strumenti aziendali interni sei da solo ;-)
Philip Oakley,

A meno che non sia più complicato di una semplice linea di setter, non vedo HOME definito nello script etc \ profile. Sembra ancora agire come descritto, ma non sono chiaro dove HOME sia impostato al giorno d'oggi.
ojchase,

@ojchase La mia parte della risposta di dove --glob config è scritto in relazione specificamente a Windows. Il core git di Linux scrive in luoghi come dove dirige la cosa XDG (cioè sono consapevole che Linux scrive in altri luoghi e ha altre convenzioni, e soprattutto ha una directory root mentre Windows ha 'Drives' ;-)
Philip Oakley,

@PhilipOakley In realtà mi riferivo anche a Windows; scusa non ero chiaro. Combinando la tua risposta e gli altri, mi aspettavo una specie di linea HOME = $HOMEDRIVE$HOMEPATH(o simile) C:\Program Files\Git\etc\profilee quella linea non sembra esistere, ma probabilmente lo era? Non sono stato in grado di capire esattamente cosa sta impostando $ HOME a meno che non sia impostato dalla variabile d'ambiente che preferirei non fare.
ojchase

12

Se stai usando TortoiseGit su un PC Windows puoi usare:

Settings / Git / Config / Edit global .gitconfig

per aprire il file globale .gitignore.

Ma se si utilizza il PC Windows (7) in un dominio, la directory del proprio profilo potrebbe essere una condivisione di rete (montata come unità). In questo caso TortoiseGit (almeno: 1.6.5.0) ti sta indicando la directory sbagliata (su c: ...). Vedere il numero 922 di TortoiseGit chiuso per ulteriori informazioni. O usando% HOMEDRIVE %% HOMEPATH% per aprire la directory che contiene il file .gitignore.


10

Sto usando SmartGit con msysgit su Windows 8.1 e ho notato che ci possono essere tre posizioni diverse per il gitconfigfile:

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

Ma quello che viene utilizzato è quello di %USERPROFILE%\.gitconfig.


6

Potrebbe essere utile notare (per le piattaforme * nix): alcuni tipi di informazioni / configurazioni git globali sono archiviate /usr/share/git-core/, come gli script di completamento automatico git e i seguenti hook (predefiniti):

  • applypatch-msg
  • post-aggiornamento
  • pre-commit
  • preparare-commit-msg
  • commit-msg
  • pre-applypatch
  • pre-rebase
  • aggiornare

Ognuno di questi può contenere il proprio set di comandi da eseguire, nel momento descritto dai rispettivi nomi di file.


2
Non utile per la domanda OP.
orbfish,

5

Ho anche avuto un problema con il mio globale .gitconfig Questo è il caso che qualcuno abbia anche questo strano

git ha detto:

fatale: errore sconosciuto durante la lettura dei file di configurazione

Ora l'ho risolto. Il problema era un secondo .gitconfigin questa cartella:

C: \ Users \ myUser.config \ git \ config

Non so da dove venga ... Ma ora tutto funziona di nuovo come un incanto.


5

Quando viene creato il file globale .gitconfig?

Prima di tutto, git non crea automaticamente il file di configurazione globale (.gitconfig) durante la sua installazione. Il file non viene creato fino a quando non viene scritto per la prima volta. Se non hai mai impostato una variabile di sistema, questa non sarà nel tuo file system. Immagino che potrebbe essere la fonte del problema.

Un modo per chiedere a Git di crearlo è richiedere una modifica. Ciò forzerà la creazione del file.

git config --global --edit

Se si controlla la cartella principale dell'utente quando si emette questo comando, verrà visualizzato magicamente il file .gitconfig.

Dove è memorizzata la configurazione di git?

Ecco una rapida panoramica del nome e della posizione dei file di configurazione associati ai tre ambiti Git, ovvero sistema , globale e locale :

  • Configurazione di System Git: file denominato gitconfig situato in -git-install-location- / ming <32> / etc
  • Configuraiton Global Git: file denominato .gitconfig situato nella cartella home dell'utente (C: \ Users \ git user)
  • Configurazione Git locale: file denominato config nella cartella .git del repository locale

Certo, vedere è credere, quindi ecco un'immagine che mostra ogni file e ogni posizione. Ho estratto l'immagine da un articolo che ho scritto sull'argomento.

Posizioni dei file di configurazione di Windows Git (TheServerSide.com)

Posizione dei file di configurazione di Git


1
c'è un quarto posto chiamato configurazione portatile: qui menzionano i 4 posti; Git per Windows supporta quattro livelli di configurazione. Al livello più basso sono le impostazioni di configurazione specifiche della macchina note come "portabili" e vivono un "% ProgramData% \ Git \ config"
Badr Elmers,

1
Sbalordire! Ho intenzione di aggiornare l'articolo con le nuove informazioni. Saluti!
Cameron McKenzie,

4

Sto eseguendo Windows 7 e utilizzo Git come programma di installazione seguendo le istruzioni su GitHub (uno o due anni fa). Un caso d'uso piuttosto comune avrei pensato. Nessuna delle risposte sopra mi ha aiutato, e dopo molta frustrazione ho finalmente trovato il mio "vero" file gitconfig nella seguente directory;

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

Ovviamente sostituisci il tuo nome utente e presumibilmente il suffisso dopo PortableGit_ è un GUID univoco o simile.


1
Questo è solo il caso quando si utilizza GitHub per Windows.
Snake,

3

Penso che sia importante pubblicare questa citazione:

Git per Windows supporta quattro livelli di configurazione. Al livello più basso si trovano le impostazioni di configurazione specifiche della macchina note come "portabili" e vivono un "% ProgramData% \ Git \ config". Un livello di priorità ci sono le impostazioni di configurazione specifiche dell'installazione note come "sistema", che vivono in "\ mingw64 \ etc \ gitconfig". Entrambi questi file di configurazione richiedono generalmente privilegi elevati per la modifica.

A partire dall'uso di valori specifici noti come configurazione "globale", che si trova in "% UserProfile% .gitconfig", troviamo i file di configurazione "modificabili dall'utente". Le impostazioni di configurazione con priorità più alta si trovano nella configurazione "locale", che di solito si trova in ".git \ config".

Si vede che la raccomandazione nel blog collegato è quella di modificare le impostazioni di configurazione specifiche del "sistema" o "installazione", il che va bene, ma gli utenti dovrebbero aspettarsi che altre installazioni di Git non assorbirebbero tali impostazioni. Se si desidera impostare a livello di macchina, utilizzare il file di configurazione "portatile", altrimenti scegliere i file di configurazione "globale" o "locale".

Speriamo che le persone trovino utili queste informazioni.

fonte


3

Come ha sottolineato @MatrixFrog nel loro commento , se l'obiettivo è modificare la configurazione, potresti voler eseguire:

git config --global --edit

Questo comando aprirà il file di configurazione (in questo caso, --globalquello) nell'editor di scelta, e attenderà che il file venga chiuso (proprio come durante git rebase -i).


È possibile utilizzare questo per capire dove il globale .gitconfigsi trova -. Fintanto che il vostro editor di che cosa directory il file si trova nella dice È inoltre possibile utilizzare altri interruttori ( --system, --local, ecc) per trovare e modificare le altre .gitconfigposizioni. PS -eè lo stesso di--edit
LightCC

1

Disinstallare Msysgit e installare Cygwin + Git. Quindi il '.gitconfig' globale sarà qui: C: \ cygwin (64) \ home \ [userName] \. Gitconfig.

Ora non devi preoccuparti di una variabile d'ambiente che può essere utilizzata da altri programmi. Ad esempio, la mia variabile di ambiente mi ha indirizzato verso un'unità mappata nel mio ambiente di dominio Windows di lavoro. Non voglio che il mio .gitconfig globale sia posizionato sul mio disco mappato "home". Inoltre non so cosa potrebbe accadere ad altre applicazioni che potrebbero fare affidamento su quella variabile di ambiente di Windows. La divisione Operazioni potrebbe aver bisogno di quella variabile d'ambiente impostata sull'unità mappata per un motivo.

Inoltre, non devi preoccuparti che Mysysgit sovrascriva le impostazioni di configurazione del tuo "profilo" se specifichi un percorso specifico per ".gitconfig" globale, usando questo metodo.

In generale, salvati e usa cygwin bash shell in Windows ed essere più felice


1

Ho avuto un problema simile; il problema era che il .gitconfigfile si trovava in

C:\Users\MyLogin\.gitconfig\

(su Windows 7)

In altre parole, il file si trovava in C:\Users\MyLogin\.gitconfig\.gitconfig, anziché in C:\Users\MyLogin\.gitconfig(che è dove Git stava cercando i file).


1

.gitconfig posizione del file

test macOS OK

globale

# global config
$ cd ~/.gitconfig

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

Locale

# local config
$ cd .git/config

# view local config
$ git config -l

forse un bonus per te :Vimo VSCodeper modificare git config


# 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


0

Avevo installato il mio Git in: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.