W3docs

git config

Scopri git config: come impostare livelli, editor, alias, colori e variabili di configurazione per personalizzare Git.

Cos'è git config

Il comando git config è un'utilità a riga di comando per leggere e scrivere le variabili di configurazione di Git — le impostazioni che controllano l'aspetto e il comportamento di Git. Queste variabili definiscono la tua identità (nome ed email), l'editor di testo preferito, i colori dell'output, le scorciatoie dei comandi (alias) e molti altri comportamenti.

Questa pagina illustra i livelli di configurazione e i relativi file, come leggere e scrivere valori, come impostare l'editor e i colori, come creare alias e come gestire la gestione degli spazi bianchi. Impostare user.name e user.email con git config è solitamente la prima cosa che si fa dopo aver installato Git.

gitconfig

I livelli e i file di git config

Il comando git config accetta argomenti per specificare su quale livello di configurazione operare. Quando cerca un valore di configurazione, Git applica la seguente priorità (dalla più bassa alla più alta):

  1. --system – La configurazione a livello di sistema include tutti gli utenti del sistema operativo e tutti i repository. Il file di configurazione di sistema si trova nella directory di installazione di Git.

git config livello system

(prefix)/etc/gitconfig - on Unix systems
C:\Documents and Settings\All Users\Application Data\Git\config - Windows XP (deprecated)
C:\ProgramData\Git\config - Windows Vista and newer versions
  1. --global – La configurazione a livello globale si applica all'utente corrente del sistema operativo. I valori di configurazione globale sono memorizzati in un file nella home directory dell'utente.

git config livello global

~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows
  1. --local – Quando non viene passata nessuna opzione di configurazione, git config scrive al livello locale per impostazione predefinita. La directory .git del repository contiene un file che memorizza i valori di configurazione locale.

git config livello local

.git/config

Nota: le impostazioni locali sovrascrivono quelle globali, che a loro volta sovrascrivono quelle di sistema. Quindi un user.email impostato all'interno di un repository (locale) ha la precedenza sul valore globale, consentendoti di usare un indirizzo di lavoro in un progetto e un indirizzo personale in un altro.

Come scrivere un valore

Per scrivere un valore, passa il nome della configurazione seguito dal valore. L'esempio seguente scrive [email protected] in user.email. Il flag --global imposta il valore per l'utente corrente del sistema operativo, quindi si applica a ogni repository in cui lavori:

git config imposta user

git config --global user.email "[email protected]"

Una tipica configurazione iniziale scrive sia il nome che l'email:

git config --global user.name "Jane Doe"
git config --global user.email "[email protected]"

Questi due valori vengono applicati a ogni commit che crei, quindi impostali prima del tuo primo commit.

Come leggere un valore

L'uso di base di git config consiste nel recuperare un valore di configurazione specificandone il nome. I nomi delle configurazioni sono composti da una section e una key separati da un punto:

git config user email

git config user.email

Qui, email è una proprietà figlia della sezione user. Eseguire questo comando stampa il valore attivo — quello che prevale dopo aver applicato la catena di override locale → globale → sistema.

Comandi utili per l'ispezione

Oltre alla lettura di una singola chiave, questi comandi ti aiutano a visualizzare e gestire tutto ciò che Git ha configurato:

ComandoCosa fa
git config --listElenca ogni impostazione attiva, unita da tutti i livelli.
git config --list --show-originElenca ogni impostazione insieme al file da cui proviene.
git config --get-all <key>Recupera tutti i valori per una chiave che può essere impostata più volte.
git config --unset <key>Rimuove una singola impostazione.
git config --editApre il file di configurazione rilevante nel tuo editor predefinito.

Quando due livelli definiscono la stessa chiave, --show-origin è il modo più rapido per scoprire quale file è responsabile del valore effettivamente utilizzato da Git.

L'editor di git config - core.editor

Una volta impostata la tua identità, Git utilizza l'editor predefinito del sistema, che è Vi o Vim. Con git config si imposta quale editor Git utilizzerà. Ecco l'elenco degli editor più comuni con i relativi comandi git config:

EditorComando di configurazione
Atomgit config --global core.editor "atom --wait"
emacsgit config --global core.editor "emacs"
nanogit config --global core.editor "nano -w"
vimgit config --global core.editor "vim"
Sublime Text (Mac)git config --global core.editor "subl -w"
Sublime Text (Win, 32-bit install)git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"
Sublime Text (Win, 64-bit install)git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"
Textmategit config --global core.editor "mate -w"

Output colorati

Git supporta i colori, semplificando così la lettura dell'output. Puoi usare i tuoi colori per personalizzare l'output. Per impostare i valori dei colori si usa il comando git config.

color.ui

Git colora automaticamente la maggior parte del suo output, ma esiste anche una variabile principale se vuoi impostare un altro colore. Per disabilitare tutto l'output colorato nel terminale di Git puoi procedere come segue:

git config imposta color.ui

git config --global color.ui false

L'impostazione predefinita di color.ui è auto, che applica i colori direttamente all'output del terminale. Omette i codici colore quando l'output viene reindirizzato a una pipe o a un file.

Puoi anche impostare il valore di color.ui su always. Questo applica i codici colore quando l'output viene reindirizzato a file o pipe. Ciò può causare problemi poiché la pipe ricevente potrebbe non aspettarsi input con codici colore.

Valori di colore di Git

Oltre a color.ui, esistono altre impostazioni di colore che possono essere impostate su false, auto o always. Possono avere un valore di colore specifico: normal, black, red, green, yellow, blue, magenta, cyan, white. I colori possono essere specificati come codici esadecimali come #1c87c9 o valori ANSI a 256 colori se il terminale li supporta.

Impostazioni di configurazione dei colori di Git

ImpostazioneDescrizione
color.branchImposta il colore dell'output del comando Git branch.
color.branch.<slot>È rilevante per l'output di Git branch. <slot> è uno dei seguenti: 1. branch corrente 2. branch locale 3. branch remoto 4. branch upstream 5. plain (qualsiasi altro ref)
color.diffAssegna colori all'output di git diff, git log e git show
color.diff.<slot>Indica a git in quale parte della patch (context, plain, meta, frag, old, new, commit, whitespace) deve essere applicato un colore specifico.
color.decorate.<slot>Regola il colore per l'output di git log --decorate. I valori <slot> supportati sono branch, remoteBranch, tag, stash o HEAD. Vengono applicati rispettivamente ai branch locali, ai branch di tracciamento remoto, ai tag, alle modifiche in stash e a HEAD.
color.grepAssegna il colore all'output di git grep.
color.grep.<slot>Può essere applicato a git grep. La variabile <slot> specifica a quale parte dell'output di grep (context, filename, function, line number, match, matchContext, matchSelected, selected, separator) deve essere applicato il colore.
color.interactiveAssegna colori ai prompt e alle visualizzazioni interattive (ad es. git add --interactive, git clean --interactive)
color.interactive.<slot>Riguarda un "output interattivo". I valori <slot> disponibili sono: prompt, header, help, error.
color.pagerAbilita o disabilita l'output colorato quando il pager è in uso.
color.showBranchAbilita o disabilita l'output colorato per il comando git show branch.
color.statusAbilita o disabilita l'output colorato per Git status.
color.status.<slot>Specifica il colore personalizzato per gli elementi definiti di git status. <slot> supporta i seguenti valori: header, added o updated, changed, untracked, branch, nobranch, unmerged.

Gli alias di git config

Gli alias sono scorciatoie personalizzate che si espandono in comandi più lunghi o combinati, così non devi riscrivere per intero i comandi usati di frequente. Il sistema di alias di Git viene usato più spesso per abbreviare i comandi comuni. Crei gli alias con git config:

git config imposta alias

git config --global alias.ci commit

Dopo questo, git ci esegue git commit. Poiché il valore contiene uno spazio, un alias che mappa un comando con flag deve essere racchiuso tra virgolette come singolo argomento:

git config alias

git config --global alias.amend "commit --amend"

Qui, eseguire git amend si espande in git commit --amend. Un alias può anche chiamare un comando shell anteponendo ! al valore, ad esempio git config --global alias.unstage '!git restore --staged'. Per un approfondimento, consulta il capitolo dedicato a git alias.

Formattazione e spazi bianchi

FunzionalitàDescrizioneComando Git Config
indent-with-non-tabEvidenzia una riga che inizia con spazi anziché tab.git config --global core.whitespace "indent-with-non-tab,tab-in-indent,blank-at-eof,-trailing-space,-cr-at-eol"
tab-in-indentEvidenzia un'indentazione con tab iniziale come errore.(Combinato con altre regole)
blank-at-eofEvidenzia le righe vuote inserite alla fine di un file.(Combinato con altre regole)
trailing-spaceEvidenzia gli spazi bianchi finali.(Combinato con altre regole)
cr-at-eolEvidenzia un ritorno a capo alla fine della riga.(Combinato con altre regole)
tabwidth=<n>Specifica quante posizioni di carattere occupa un tab. Il valore predefinito è 8. Valori consentiti: 1-63.git config --global core.whitespace "tabwidth=<n>"

Altre impostazioni comuni

Alcuni valori di configurazione vale la pena impostare su un nuovo computer:

# Name the default branch "main" for every repository you create
git config --global init.defaultBranch main

# Reuse cached credentials so you are not prompted on every push
git config --global credential.helper cache

# Choose how git pull reconciles divergent branches (merge, not rebase)
git config --global pull.rebase false

Il valore init.defaultBranch viene applicato da git init quando si crea un repository. Per controllare quali file Git traccia, abbina la tua configurazione a un file .gitignore.

Esercitazione

Pratica
Quale delle seguenti è un uso corretto del comando 'git config'?
Quale delle seguenti è un uso corretto del comando 'git config'?
Was this page helpful?