In questo documento, daremo uno sguardo approfondito al comando git config
. Abbiamo discusso brevemente di git config
utilizzo nella nostra pagina Configurazione di un repository. Il comando git config
è una comoda funzione che viene utilizzata per impostare i valori di configurazione Git su un progetto globale o locale livello. Questi livelli di configurazione corrispondono a .gitconfig
file di testo. L’esecuzione di git config
modificherà un file di testo di configurazione. Tratteremo le impostazioni di configurazione comuni come email, nome utente ed editor. Discuteremo degli alias Git, che ti consentono di creare scorciatoie per 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ù elementare di git config
è invocarlo con un nome di configurazione, che mostrerà il valore impostato in 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
In questo esempio, la posta elettronica è una proprietà figlia del blocco di configurazione utente. Ciò restituirà l’indirizzo di posta elettronica configurato, se presente, che Git assocerà ai commit creati localmente.
livelli e file di configurazione git
Prima di discutere ulteriormente l’utilizzo di git config
, prendiamoci un momento per trattare i 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:
-
--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 di contesto git config
viene richiamato. I valori di configurazione locale sono memorizzati in un file che può essere trovato nella directory .git del repository “s: .git/config
-
--global
La configurazione a livello globale è utente- specific, nel senso che viene applicato a un utente del sistema operativo. I valori di configurazione globale sono memorizzati in un file che si trova nella directory home di un utente. ~ /.gitconfig
su sistemi unix e C:\Users\\.gitconfig
su Windows
-
--system
La configurazione a livello di sistema viene applicata a un’intera macchina. Questo copre tutti gli utenti su un sistema operativo e tutti i repository. Il file di configurazione a livello di sistema risiede in un file gitconfig
fuori dal percorso root del sistema. $(prefix)/etc/gitconfig
su sistemi unix. Su Windows questo file si trova 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.
Quindi l’ordine di priorità per i livelli di configurazione è: locale, globale, sistema. Ciò significa che quando si cerca un valore di configurazione, Git inizierà a livello locale e si espanderà fino a livello di sistema.
Scrittura di un valore
Espandendo ciò che già sappiamo su git config
, guardiamo un esempio in cui scriviamo un valore:
Questo esempio scrive il valore al nome della 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 lanceranno un editor di testo per richiedere ulteriori input. Uno degli usi più comuni casi per git config
sta configurando quale editor Git dovrebbe utilizzare. Di seguito è elencata una tabella di editor popolari e comandi git config
corrispondenti:
Strumenti di unione
In caso di conflitto di unione, Git avvierà uno “strumento di unione”. Per impostazione predefinita, Git utilizza un’implementazione interna o f il comune programma diff di Unix. Il diff interno di Git è un visualizzatore di conflitti di unione minimo. Esistono molte risoluzioni di conflitti di unione di terze parti esterne che possono essere utilizzate in alternativa. Per una panoramica dei vari strumenti di unione e configurazione, consulta la nostra guida su suggerimenti e strumenti per risolvere conflitti con Git.
Output colorati
Git supporta l’output del terminale colorato che aiuta a leggere rapidamente l’output di Git. Puoi personalizzare l’output di Git per utilizzare un tema colore personalizzato. Il comando git config
viene utilizzato per impostare questi valori di colore.
color.ui
Questa è la variabile principale per i colori Git. Impostandolo su false si disabiliterà l’output del terminale colorato di Git.
Per impostazione predefinita, color.ui
è impostato su auto che applicherà i colori al flusso di output del terminale immediato.L’impostazione automatica ometterà l’output del codice colore se il flusso di output viene reindirizzato a un file o reindirizzato a un altro processo.
Puoi impostare il valore color.ui
su sempre quale applicherà anche l’output del codice colore quando reindirizza il flusso di output a file o pipe. Ciò può causare involontariamente problemi poiché la pipe ricevente potrebbe non aspettarsi un input con codice colore.
Valori di colore Git
Oltre a color.ui
, ci sono molte altre impostazioni di colore granulari. Come color.ui
, queste impostazioni di colore possono essere tutte impostate su false, auto o sempre. Queste impostazioni di colore possono anche avere un valore di colore specifico impostato. Alcuni esempi di valori di colore supportati sono:
- normale
- nero
- rosso
- verde
- giallo
- blu
- magenta
- ciano
- bianco
I colori possono anche essere specificati come codici colore esadecimali come # ff0000 o valori di colore ANSI 256 se il tuo terminale lo supporta.
Impostazioni di configurazione del colore Git
color.branch
- Configura il colore di output del comando Git branch
color.branch.
slot >
- Questo valore è applicabile anche all’output del ramo Git. slot > è uno dei seguenti:
- 1. current: il ramo corrente
- 2. locale: una filiale locale
- 3. remote: un riferimento di ramo remoto in refs / remotes
- 4. upstream: un ramo di monitoraggio a monte
- 5. plain: qualsiasi altro riferimento
color.diff
- Applica i colori a
git diff
,git log
egit show
output
color.diff
.slot >
- Configurazione di uno slot > il valore in
color.diff
indica a git su quale parte della patch utilizzare un colore specifico.- 1. contesto: il testo contestuale del diff. Il contesto Git è costituito dalle righe di contenuto di testo mostrato in un diff o in una patch che evidenzia le modifiche.
- 2. plain: sinonimo di contesto
- 3. meta: applica il colore alle meta informazioni del diff
- 4. frag: applica il colore all ‘”intestazione del pezzo” o alla “funzione nell’intestazione del pezzo”
- 5. vecchio: applica un colore alle linee rimosse nel diff
- 6. nuovo: colora le linee aggiunte del diff
- 7. commit: colori commit intestazioni all’interno del diff
- 8. whitespace: imposta un colore per eventuali errori di spazi in un diff
color.decorate.
slot >
- Personalizza il colore per l’output
git log --decorate
. I valori dello slot > supportati sono:branch
,remoteBranch
,tag
,stash
oHEAD
. Sono applicabili rispettivamente a rami locali, rami di monitoraggio remoto, tag, modifiche nascoste eHEAD
.
color.grep
- Applica il colore all’output di git grep.
color.grep.
slot >
- Applicabile anche a git grep. La variabile slot > specifica quale parte dell’output di grep applicare il colore.
- 1. contesto: testo non corrispondente nelle righe di contesto
- 2. nomefile: prefisso del nome file
- 3. funzione: righe del nome della funzione
- 4. numero di lino: prefisso del numero di riga
- 5. match: testo corrispondente
- 6. matchContext: corrispondenza del testo nelle righe di contesto
- 7. matchSelected: corrispondenza del testo nelle righe selezionate
- 8. selezionato: 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 a prompt e display interattivi. Esempi sono
git add --interactive
egit clean --interactive
9. color.interactive.slot >
- La variabile slot > può essere specificata per targetizzare in modo più specifico ” output interattivo “. I valori disponibili per lo slot > sono: prompt, header, help, error; e ciascuno agisce sull’output interattivo corrispondente.
color.pager
- Abilita o disabilita l’output colorato quando il paginatore è in uso
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 di Git
13. color.status.slot
>
Utilizzato per specificare il colore personalizzato per gli elementi di stato git specificati. slot > supporta i seguenti valori:
- 1.header
- Ha come destinazione il testo dell’intestazione dell’area di stato
- 2. aggiunti o aggiornati
- Entrambi i file di destinazione aggiunti ma non sottoposti a commit
-
3. changed
- Ha come destinazione i file modificati ma non aggiunti all’indice git
- 4. untracked
- Target di file non tracciati da Git
- 5. ramo
- Applica il colore al ramo corrente
- 6. nobranch
- Il colore dell’avviso “nessun ramo” è mostrato in
- 7.
- File di colori che hanno modifiche non unite
Alias
Potresti avere familiarità con il concetto di alias da la riga di comando del sistema operativo; in caso contrario, sono scorciatoie personalizzate che definiscono quale comando si espanderà in comandi più lunghi o combinati. Gli alias ti fanno risparmiare il tempo e il costo energetico della digitazione dei comandi usati di frequente. Git fornisce il proprio sistema di alias. Un caso d’uso comune per gli alias Git è l’accorciamento il comando commit. Gli alias Git sono memorizzati nei file di configurazione di Git. Ciò significa che puoi utilizzare il comando git config
per configurare gli alias.
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 combo.
Questo esempio crea un alias edit che compone il ci alias in un nuovo alias che utilizza --amend flag
.
Formattazione & spazi bianchi
Git ha diverse funzioni di “spazi bianchi” che possono essere configurate per evidenziare gli spazi problemi quando si utilizza git diff. I problemi di spazi saranno evidenziati utilizzando il colore configurato color.diff.whitespace
Le seguenti funzioni sono abilitate per impostazione predefinita:
-
blank-at-eol
evidenzia gli spazi bianchi orfani alle estremità di riga -
space-before-tab
evidenzia uno spazio che appare prima di un carattere di tabulazione quando si fa rientrare una riga -
blank-at-eof
evidenzia le righe vuote inserite alla fine di un file
Le seguenti funzionalità sono disabilitate per impostazione predefinita
-
indent-with-non-tab
evidenzia una riga rientrata con spazi invece che con tabulazioni -
tab-in-indent
evidenzia un il rientro di tabulazione iniziale come errore -
trailing-space
è una scorciatoia per blank-at-eol e blank-at-eof -
cr-at-eol highlights
un ritorno a capo alla fine della riga -
tabwidth=
definisce quante posizioni di carattere occupa una tabulazione. Il valore predefinito è 8. I valori consentiti sono 1-63
Riepilogo
In questo articolo, abbiamo trattato l’uso di git config command
. Abbiamo discusso di come il comando sia un metodo convincente per modificare i file git config
grezzi sul filesystem. Abbiamo esaminato le operazioni di lettura e scrittura di base per le opzioni di configurazione. Abbiamo esaminato i modelli di configurazione comuni:
- Come configurare l’editor Git
- Come sovrascrivere i livelli di configurazione
- Come ripristinare i valori predefiniti di configurazione
- Come personalizzare i colori di git
Nel complesso, git config
è uno strumento di supporto che fornisce una scorciatoia per modificare git config
file su disco. Abbiamo trattato in modo approfondito le opzioni di personalizzazione personale. La conoscenza di base delle opzioni di configurazione di git è un prerequisito per la configurazione di un repository. Consulta la nostra guida per una dimostrazione delle nozioni di base.