Da Anonimo (non verificato) , 29 Aprile 2026

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

OpzioneDescrizione
--globalOpera sulla config per utente.
--systemOpera sulla config a livello sistema.
--localOpera sulla config del repo corrente (default se in un repo).
--listMostra tutte le impostazioni.
--editApre la config scelta nel tuo editor.
--unsetRimuove un'impostazione.
--addAggiunge un valore a una chiave multi-valore.
--show-originAnnota 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