git config
In questo documento, daremo un'occhiata approfondita al comando git config
. Abbiamo parlato brevemente dell'utilizzo di git config
nella nostra pagina Configurazione di un repository. Il comando git config
è una comoda funzione che viene utilizzata per impostare i valori di configurazione Git a livello di progetto globale o locale. Questi livelli di configurazione corrispondono a file di testo .gitconfig
e l'esecuzione di git config
modificherà un file di testo di configurazione. Tratteremo le impostazioni di configurazione comuni come e-mail, nome utente ed editor. Parleremo degli alias Git, che ti consentono di creare scorciatoie per le operazioni Git utilizzate di frequente. Acquisire familiarità con git config
e le varie impostazioni di configurazione di Git ti aiuterà a creare un flusso di lavoro Git potente e personalizzato.
Utilizzo
Il caso d'uso più semplice per git config
è richiamarlo con un nome di configurazione, che mostrerà il valore impostato con quel nome. I nomi di configurazione sono stringhe delimitate da punti composte da una «sezione» e una «chiave» in base alla loro gerarchia. Ad esempio: user.email
git config user.email
In questo esempio, l'e-mail è una proprietà secondaria del blocco di configurazione utente. Verrà restituito l'indirizzo email configurato, se presente, che Git assocerà ai commit creati localmente.
Livelli e file di git config
Prima di discutere ulteriormente dell'utilizzo di git config
, soffermiamoci un momento sui livelli di configurazione. Il comando git config
può accettare argomenti per specificare su quale livello di configurazione operare. Sono disponibili i seguenti livelli di configurazione:
materiale correlato
Branch Git
Scopri la soluzione
Impara a utilizzare Git con Bitbucket Cloud
--local
Per impostazione predefinita, git config
scriverà a livello locale se non viene passata alcuna opzione di configurazione. La configurazione a livello locale viene applicata al repository contestuale in cui viene richiamato git config
. I valori di configurazione locale sono archiviati in un file nella directory .git del repository: .git/config
-
--global
La configurazione a livello globale è specifica dell'utente, il che significa che viene applicata a un utente del sistema operativo. I valori di configurazione globali sono archiviati in un file che si trova nella home directory dell'utente. ~ /.gitconfig
sui sistemi Unix e C:\Users\
su Windows
-
--system
La configurazione a livello di sistema viene applicata su un intero computer. Riguarda tutti gli utenti di un sistema operativo e tutti i repository. Il file di configurazione a livello di sistema risiede in un file gitconfig
fuori dal percorso principale del sistema. $(prefisso)/etc/gitconfig
su sistemi Unix. Su Windows questo file può trovarsi in C:\Documents and Settings\All Users\Application Data\Git\config
su Windows XP e in C:\ProgramData\Git\config
su Windows Vista e versioni successive.
Pertanto l'ordine di priorità per i livelli di configurazione è: locale, globale, di sistema. Ciò significa che quando si cerca un valore di configurazione, Git inizierà a livello locale e terminerà a livello di sistema.
Scrittura di un valore
Approfondendo ciò che già sappiamo su git config
, diamo un'occhiata a un esempio in cui scriviamo un valore:
git config --global user.email "your_email@example.com"
Questo esempio scrive il valore la_tua_e-mail@esempio.com
nel nome di configurazione user.email
. Utilizza il flag --global
, quindi questo valore è impostato per l'utente corrente del sistema operativo.
git config editor - core.editor
Molti comandi Git avvieranno un editor di testo per richiedere ulteriori input. Uno dei casi d'uso più comuni per git config
è la configurazione dell'editor che Git dovrebbe usare. Di seguito è elencata una tabella degli editor più diffusi e dei comandi git config
corrispondenti:
Editor | Comando config |
---|---|
Atom | Comando config |
emacs | Comando config |
nano | Comando config |
vim | Comando config |
Sublime Text (Mac) | Comando config |
Sublime Text (Win, installazione a 32 bit) | Comando config |
Sublime Text (Win, installazione a 64 bit) | Comando config |
Textmate | Comando config |
Strumenti di merge
In caso di conflitto di merge, Git lancerà uno "strumento di merge". Per impostazione predefinita, Git utilizza un'implementazione interna del comune programma diff di Unix. Il diff interno di Git è un visualizzatore di conflitti di merge minimo. Ci sono molte risoluzioni esterne dei conflitti di merge di terze parti che possono essere utilizzate al suo posto. Per una panoramica dei vari strumenti di merge e configurazione, consulta la nostra guida su suggerimenti e strumenti per risolvere i conflitti con Git.
git config --global merge.tool kdiff3
Output a colori
Git supporta l'output da terminale a colori che aiuta a leggere rapidamente l'output Git. Puoi personalizzare il tuo output Git per utilizzare un tema di colori personalizzato. Il comando git config
viene utilizzato per impostare questi valori di colore.
color.ui
Questa è la variabile master per i colori Git. L'impostazione su false disattiverà l'output colorato di tutti i terminali di Git.
$ git config --global color.ui false
Per impostazione predefinita, color.ui
è impostato su auto e applicherà i colori al flusso di output immediato del terminale. L'impostazione automatica ometterà l'output con codifica per colore se il flusso di output viene reindirizzato a un file o a un altro processo.
Puoi impostare il valore color.ui
su always, che applicherà anche la codifica per colore nell'output in caso di reindirizzamenti del flusso a file o pipe. Ciò può causare involontariamente dei problemi poiché il pipe di ricezione potrebbe non aspettarsi input con codifica per colore.
Valori cromatici Git
Oltre a color.ui
, ci sono molte altre impostazioni di colore granulari, che come color.ui
, possono essere tutte impostate su false,auto o always. Queste impostazioni di colore possono anche avere un valore cromatico specifico. Alcuni esempi di valori di colore supportati sono:
- Normale
- Nero
- rosso
- verde
- giallo
- blu
- magenta
- cyan
- Bianco
I colori possono anche essere specificati come codici colore esadecimali come #ff0000 o valori di colore ANSI 256 se il tuo terminale li supporta.
Impostazioni di configurazione dei colori git
1. color.branch
- Configura il colore di output del comando del branch Git
2. color.branch.
<slot
>
- Questo valore è applicabile anche all'output del branch Git. <
slot
> è uno dei seguenti:- 1. current: il branch attuale
- 2. local: un branch locale
- 3. remoto: un riferimento a un branch remoto in refs/remotes
- 4. upstream: un branch di tracciamento upstream
- 5. plain: qualsiasi altro riferimento
3. color.diff
- Applica i colori all'output
git diff
, git log
egit show
4. color.diff
.<slot
>
- Configurare un valore di <
slot
> incolor.diff
indica a git su quale parte della patch usare un colore specifico.- 1. context: il testo contestuale del diff. Il contesto Git sono le righe di contenuto di testo mostrate in un diff o in una patch che evidenzi le modifiche.
- 2. plain: sinonimo di context
- 3. meta: applica il colore alle informazioni meta del diff
- 4. frag: applica un colore all'"intestazione" o alla "funzione nell'intestazione hunk"
- 5. old: applica un colore alle righe rimosse nel diff
- 6. new: colora le righe aggiunte del diff
- 7. commit: colora le intestazioni dei commit all'interno del diff
- 8. whitespace: imposta un colore per eventuali errori di whitespace in un diff
5. color.decorate.
<slot
>
- Personalizza il colore per l'output di
git log --decorate
. I valori degli <slot
> supportati sono:branch
,RemoteBranch
,tag
,stash
oHEAD
. Sono rispettivamente applicabili a branch locali, branch di tracciamento remoto, tag, modifiche in stash eHEAD
.
6. color.grep
- Applica il colore all'output di git grep.
7. color.grep.
<slot
>
- Applicabile anche a git grep. La variabile <
slot
> specifica a quale parte dell'output grep applicare il colore.- 1. context: testo non corrispondente nelle righe di contesto
- 2. filename: prefisso del nome del file
- 3. function: righe dei nomi delle funzioni
- 4. linenumber: prefisso del numero di riga
- 5. match: testo corrispondente
- 6. matchContext: corrispondenza del testo nelle righe contestuali
- 7. matchSelected: corrispondenza del testo nelle righe selezionate
- 8. selected: testo non corrispondente nelle righe selezionate
- 9. separator: separatori tra i campi su una riga (:, - e =) e tra hunk (--)
8. color.interactive
- Questa variabile applica il colore ai prompt e ai display interattivi. Esempi sono
git add --interactive
egit clean --interactive
9. color.interactive.<slot
>
- La variabile <
slot
> può essere specificata per indirizzare un "output interattivo" più specifico. I valori degli <slot
> disponibili sono: prompt, header, help, error, oltre a ogni azione sull'output interattivo corrispondente.
10. color.pager
- Attiva o disabilita l'output a colori quando il pager è in uso
11. color.showBranch
- Abilita o disabilita l'output a colori per il comando git show branch
12. color.status
- Un valore booleano che abilita o disabilita l'output a colori per lo stato Git
13. color.status.<
slot
>
Usato per specificare un colore personalizzato per determinati elementi di stato git. <slot
> supporta i seguenti valori:
1. header
- Ha come target il testo dell'intestazione dell'area di stato
2. added o updated
- Entrambi hanno come target i file aggiunti ma senza commit
3. changed
- Ha come target i file modificati ma non aggiunti all'indice git
4. untracked
- Ha come target i file che non sono tracciati da Git
5. branch
- Applica il colore al branch attuale
6. nobranch
- Il colore con cui è mostrato l'avviso "nessun branch"
7. unmerged
- Colora i file con modifiche senza merge
Alias
Forse conosci il concetto di alias dalla riga di comando del tuo sistema operativo; in caso contrario, sono scorciatoie personalizzate che definiscono quale comando si espanderà a comandi più lunghi o combinati. Gli alias ti fanno risparmiare tempo e costi di alimentazione per digitare i comandi di uso frequente. Git fornisce il proprio sistema di alias. Un caso d'uso comune per gli alias Git è l'abbreviazione del comando commit. Gli alias Git sono archiviati nei file di configurazione Git. Ciò significa che puoi usare il comando git config
per configurare gli alias.
git config --global alias.ci commit
Questo esempio crea un alias ci per il comando git commit
. Puoi quindi richiamare git commit
eseguendo git ci
. Gli alias possono anche fare riferimento ad altri alias per creare potenti combinazioni.
git config --global alias.amend ci --amend
Questo esempio crea un alias amend che compone l'alias ci in un nuovo alias che utilizza --amend flag
.
Formattazione e whitespace
Git ha diverse funzionalità "whitespace" che possono essere configurate per evidenziare i problemi relativi ai whitespace quando si usa git diff. I problemi relativi ai whitespace verranno evidenziati utilizzando il colore color.diff.whitespace
configurato
Le seguenti funzionalità sono abilitate per impostazione predefinita:
blank-at-eol
evidenzia i whitespace orfani alle estremità delle righespace-before-tab
evidenzia uno spazio che appare prima di un carattere di tabulazione quando si fa rientrare una rigablank-at-eof
evidenzia le righe vuote inserite alla fine di un file
Le seguenti funzionalità sono disattivate per impostazione predefinita
indent-with-non-tab
evidenzia una riga rientrata con spazi anziché tabulazionitab-in-indent
evidenzia un rientro di scheda iniziale come erroretrailing-space
è l'abbreviazione sia per blank-at-eol che per blank-at-eofcr-at-eol
evidenzia un carriage-return alle estremità delle righetabwidth=
definisce quante posizioni dei caratteri occupa una scheda. Il valore predefinito è 8. I valori consentiti sono 1-63
Riepilogo
In questo articolo, abbiamo trattato l'uso del comando config
di git. Abbiamo discusso di come il comando sia un metodo efficace per modificare file git config
non elaborati sul file system. Abbiamo esaminato le operazioni di lettura e scrittura di base per le opzioni di configurazione. Abbiamo dato un'occhiata ai modelli di configurazione più comuni:
- Come configurare l'editor Git
- Come sovrascrivere i livelli di configurazione
- Come reimpostare i valori predefiniti di configurazione
- Come personalizzare i colori git
Nel complesso, git config
è uno strumento di supporto che fornisce una scorciatoia per modificare i file git config
non elaborati su disco. Abbiamo trattato in modo approfondito le opzioni di personalizzazione personale. La conoscenza di base delle opzioni di configurazione git è un prerequisito per la creazione di un repository. Consulta la nostra guida per una dimostrazione delle nozioni di base.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.