Sinossi
git config [--global | --system | --local] <key> [<value>]
git config --list
git config --edit
Descrizione
Il comando git config legge e scrive la configurazione Git. Le impostazioni vivono in tre layer: a livello sistema (/etc/gitconfig), per utente (~/.gitconfig o ~/.config/git/config) e per repository (.git/config). I layer più specifici sovrascrivono quelli più generali. Molti comportamenti Git — editor predefinito, comportamento di push, strumenti di merge, gestione dei terminatori di riga — sono regolati via config.
Per i nuovi utenti, gli essenziali sono user.name, user.email, init.defaultBranch e core.editor. Gli utenti esperti costruiscono alias estesi, personalizzano colori e usano inclusioni condizionali per applicare impostazioni diverse per directory di progetto.
Nell'uso quotidiano, git config si integra con alias e CI.
Capire il modello dati di Git aiuta a prevedere i risultati.
Opzioni comuni
| Opzione | Descrizione |
|---|---|
--global | Opera sulla config per utente. |
--system | Opera sulla config a livello sistema. |
--local | Opera sulla config del repo corrente (default se in un repo). |
--list | Mostra tutte le impostazioni. |
--edit | Apre la config scelta nel tuo editor. |
--unset | Rimuove un'impostazione. |
--add | Aggiunge un valore a una chiave multi-valore. |
--show-origin | Annota l'output con il file da cui viene ogni impostazione. |
Esempi
git config --global user.name "Jane Smith"
git config --global user.email "[email protected]"
# Identità per ogni repo
git config --global init.defaultBranch main
git config --global pull.rebase true
git config --global core.editor "code --wait"
# Default moderni sensati
git config --global alias.lg "log --oneline --graph --decorate --all"
# Alias personalizzato
git config --list --show-origin
# Audit di dove viene ogni impostazione
Errori comuni
Impostare config globale che è destinata a essere locale (o viceversa) porta a comportamento confuso. Dimenticare di impostare user.email su una macchina fresca causa che ogni commit sia non attribuito. Usa inclusioni condizionali ([includeIf "gitdir:~/work/"]) per scambiare identità per directory.
Comandi correlati
git credential, git init, git remote