Come faccio a mostrare la mia configurazione Git globale?


1076

Vorrei mostrare tutte le sezioni Git configurate.

Ho solo trovato git config --get core.editore vorrei produrre tutto ciò che è configurato a livello globale, non solo l'editor predefinito configurato.


3
Cosa c'è di sbagliato nel guardare .gitconfig?
Torre

1
Nota che presto (Q3 / Q4 2015) avrai con git 2.6 l'opzione --name-only, per elencare solo le chiavi di configurazione, senza i loro valori. Vedi la mia risposta qui sotto
VonC

41
$ git config --list Checking-Your-Settings
TarranJones,

5
Dovrebbe essere git config --global --listcome spiegato più in profondità qui
prosti

Risposte:


1722

Puoi usare:

git config --list

o guarda il tuo ~/.gitconfigfile. La configurazione locale sarà nel .git/configfile del tuo repository .

Uso:

git config --list --show-origin

per vedere dove viene definita tale impostazione (globale, utente, repository, ecc ...)


24
Grazie, ho votato entrambi. Volevo sapere il git config --listcomando, perché posso guardare la configurazione efficace in un repository e posso differire locali config, globale e il sistema con il parametro appropriato ( --global, --local, --system). Accetterò la tua risposta non appena sarò in grado perché eri qualche secondo più veloce :)
wullxz,

2
Fai attenzione, ci sono molte potenziali fonti per la configurazione di git. Guardare il file dà solo una parte. La risposta di @ linquize è infatti corretta.
vonbrand

2
@vonbrand: --list è equivalente a -l.
Cameron Skinner,

9
Le shorthands (come -l) sono utili quando diventi un utente esperto e usi la funzione abbastanza spesso, per trarre profitto dalla digitazione di meno caratteri. Trovo più facile trovare e ricordare l' --listopzione lunga . Per le scorciatoie meno ovvie spesso devo controllare cosa significano, quindi preferisco i nomi lunghi. Sono ancora più facili, con il completamento del comando, quando non devi davvero digitare tutti i caratteri, ma vedi comunque il nome dell'intera opzione.
Krzysztof Jabłoński,

1
Cosa succede se git config --listnon stampa nulla?
Matej J,

247

Il più corto,

git config -l

mostra tutti i valori ereditati da: system, global e local


13
Questo differisce da git config --list o è solo un modo più breve per scriverlo?
Magnilex,

8
@Magnilex è solo un modo più breve per scriverlo
LemenDrop il

3
I file di configurazione potrebbero non mostrare sempre tutte le configurazioni ereditate, ma git config -lmostreranno tutto. Mi ha salvato perché git per Windows è impostato autocrlfsull'installazione e non è presente in alcun file di configurazione che riesco a trovare.
geneorama,

sì, esiste anche il file C: \ ProgramData \ Git \ config - suppongo che si tratti di un file di configurazione globale o git di sistema
Alex,

129

Come posso modificare la mia configurazione Git globale ?

Risposta breve: git config --edit --global


Per comprendere la configurazione di Git, dovresti sapere che:

Le variabili di configurazione di Git possono essere memorizzate a tre diversi livelli. Ogni livello sovrascrive i valori al livello precedente.

1. Livello di sistema (applicato a tutti gli utenti del sistema e a tutti i loro repository)

  • per visualizzare, git config --list --system(potrebbe essere necessario sudo)
  • impostare, git config --system color.ui true
  • per modificare il file di configurazione del sistema, git config --edit --system

2. Livello globale (valori specifici per te personalmente, l'utente).

  • vedere, git config --list --global
  • impostare, git config --global user.name xyz
  • per modificare il file di configurazione globale, git config --edit --global

3. Livello del repository (specifico per quel singolo repository)

  • vedere, git config --list --local
  • da impostare, git config --local core.ignorecase true( --localfacoltativo)
  • per modificare il file di configurazione del repository, git config --edit --local( --localfacoltativo)

Come posso visualizzare tutte le impostazioni?

  • Run git config --list, mostrando sistema , globale , e (se all'interno di un repository) locali configurazioni
  • Esegui git config --list --show-origin, mostra anche il file di origine di ciascun elemento di configurazione

Come posso leggere una particolare configurazione?

  • Corri git config user.nameper ottenere user.name, per esempio.
  • È inoltre possibile specificare le opzioni --system, --global, --locala leggere tale valore a un determinato livello.

Riferimento: 1.6 Introduzione - Prima configurazione di Git


1
git config --listmostra tutto globale, di sistema e locale? ho bisogno di affermazione :)
Adi Prasetyo,

2
solo per aggiungere dove sono i file di configurazione: Sistema: C: \ ProgramData \ Git \ config (in Windows). Globale: C: \ Users \ user \ .gitconfig (Windows) ~ / .gitconfig (Linux) Locale: project-repo / .git / config
Alex

@AdiPrasetyo Sì. È possibile eseguire git config --list --show-originper scoprire l'origine di ciascun elemento di configurazione.
kgf3JfUtW

109
git config --list

è un modo per andare. Di solito mi apro .gitconfigperò.


2
Intendevi ~/.gitconfiguno degli altri file menzionati nella sezione FILES di git help config?
Chwarr,

1
@chwarr - Scusa, non capisco. Ho "intenzione"?
Rook,

1
Penso che volevi dire "Di solito mi apro ~/.gitconfigcomunque.", Poiché git non cerca .gitconfignella directory corrente, indipendentemente da dove ti trovi. ( .gitconfige ~/.gitconfigdenominare file diversi [di solito ].) Gli altri file menzionati in git help confighanno nomi di file diversi, da cui il presupposto.
Chwarr,

32

Puoi anche chiamare git config -eper aprire direttamente il file di configurazione nel tuo editor. Il file di configurazione di Git è molto più leggibile -ldell'output, quindi tendo sempre a usare il -eflag.

Quindi per riassumere:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • Senza parametri interagisce con il locale .git/config.
  • Con --globalesso interagisce con ~/.gitconfig.
  • E con --systemesso interagisce con $(prefix)/etc/gitconfig.

(Non riuscivo davvero a trovare cosa $(prefix)significhi, ma sembra di default $HOME.)



11

Git 2.6 (settembre / ottobre 2015) aggiungerà l'opzione --name-onlyper semplificare l'output di a git config -l:

Vedi commit a92330d , commit f225987 , commit 9f1429d (20 ago 2015) di Jeff King ( peff) .
Vedi commit ebca2d4 (20 ago 2015) e commit 905f203 , commit 578625f (10 ago 2015) di SZEDER Gábor ( szeder) .
(Unito da Junio ​​C Hamano - gitster- in commit fc9dfda , 31 ago 2015)

config: aggiungi l' --name-onlyopzione ' ' per elencare solo i nomi delle variabili

' git config' può mostrare solo valori o coppie nome-valore, quindi se uno script di shell necessita dei nomi delle variabili di configurazione impostate deve eseguire ' git config --list' o ' --get-regexp' e analizzare l'output per separare i nomi delle variabili di configurazione dai loro valori.
Tuttavia, tale analisi non può far fronte a valori multilinea.

Sebbene ' git config' sia in grado di produrre output con terminazione null per l'analisi di newline-safe, non è utile in questo caso, poiché le shell non possono far fronte a caratteri null.

Anche il nostro script di completamento bash soffre di questi problemi.

Aiuta lo script di completamento e gli script di shell in generale, introducendo l' --name-onlyopzione ' ' per modificare l'output di ' --list' e ' --get-regexp' per elencare solo i nomi delle variabili di configurazione, in modo che non debbano eseguire post-processing soggetti a errori separare più i nomi delle variabili dai loro valori.


10

Una cosa importante su git config:

git configha --local, --globale --systemlivelli e file corrispondenti.

Quindi puoi usare git config --local, git config --globale git config --system.

Per impostazione predefinita, git configscriverà a livello locale se non viene passata alcuna opzione di configurazione. I valori di configurazione locali sono memorizzati in un file che si trova nella directory .git del repository:.git/config

La configurazione a livello globale è specifica dell'utente, ovvero viene applicata a un utente del sistema operativo. I valori di configurazione globali sono memorizzati in un file che si trova nella home directory di un utente. ~/.gitconfigsu sistemi Unix e C:\Users\<username>\.gitconfigsu Windows.

La configurazione a livello di sistema viene applicata su un'intera macchina. Questo riguarda tutti gli utenti di un sistema operativo e tutti i repository. Il file di configurazione a livello di sistema si trova in un gitconfigfile fuori dal percorso principale del sistema. $ (prefisso) / etc / gitconfig su sistemi Linux. Su Windows questo file può essere trovato in C:\ProgramData\Git\config.

Quindi la tua opzione è quella di trovare quella globale .gitconfig file e modificarlo.

Oppure puoi usare git config --global --list.

Questa è esattamente la linea di cui hai bisogno.

Inserisci qui la descrizione dell'immagine


7

Se vuoi solo elencare una parte della configurazione di Git, come alias , core , remote , ecc., Puoi semplicemente reindirizzare il risultato attraverso grep. Qualcosa di simile a:

git config --global -l | grep core

4

Su sistemi basati su Linux è possibile visualizzare / modificare un file di configurazione tramite

vi/vim/nano .git/config

Assicurati di essere nella cartella Git init.

Se vuoi lavorare con --global config, lo è

vi/vim/nano .gitconfig

su / home / userName

Questo dovrebbe aiutare con la modifica: https://help.github.com/categories/setup/


3

Per trovare tutte le configurazioni, basta scrivere questo comando:

git config --list

Nel mio locale eseguo questo comando.

Md Masud@DESKTOP-3HTSDV8 MINGW64 ~
$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
user.email=infomasud@gmail.com
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f

Il comando git config è una funzione di convenienza utilizzata per impostare i valori di configurazione di Git a livello di progetto globale o locale. Questi livelli di configurazione corrispondono ai file di testo .gitconfig. Maggiori informazioni qui: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud

Ottimo, puoi aggiungerlo alla tua risposta?
RamenChef,

1

Da Git 2.26.0 , puoi usare l' --show-scopeopzione:

git config --list --show-scope

Esempio di output:

system  rebase.autosquash=true
system  credential.helper=helper-selector
global  core.editor='code.cmd' --wait -n
global  merge.tool=kdiff3
local   core.symlinks=false
local   core.ignorecase=true

Può essere combinato con

  • --localper la configurazione del progetto, --globalper la configurazione dell'utente , per la configurazione --systemdi tutti gli utenti
  • --show-origin per mostrare l'esatta posizione del file di configurazione
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.