Close

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:

Branch Git
materiale correlato

Branch Git

Logo di Bitbucket
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\\.gitconfig 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

~ git config --global core.editor "atom --wait"~

emacs

Comando config

~ git config --global core.editor "emacs"~

nano

Comando config

~ git config --global core.editor "nano -w"~

vim

Comando config

~ git config --global core.editor "vim"~

Sublime Text (Mac)

Comando config

~ git config --global core.editor "subl -n -w"~

Sublime Text (Win, installazione a 32 bit)

Comando config

~ git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w" ~

Sublime Text (Win, installazione a 64 bit)

Comando config

~ git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w" ~

Textmate

Comando config

~ git config --global core.editor "mate -w"~

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 e git show

4. color.diff.<slot>

  • Configurare un valore di <slot> in color.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 o HEAD. Sono rispettivamente applicabili a branch locali, branch di tracciamento remoto, tag, modifiche in stash e HEAD.

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 e git 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 righe
  • 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 disattivate per impostazione predefinita

  • indent-with-non-tab evidenzia una riga rientrata con spazi anziché tabulazioni
  • tab-in-indent evidenzia un rientro di scheda iniziale come errore
  • trailing-space è l'abbreviazione sia per blank-at-eol che per blank-at-eof
  • cr-at-eol evidenzia un carriage-return alle estremità delle righe
  • tabwidth= 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.

Le persone collaborano utilizzando una parete piena di strumenti

Blog di Bitbucket

Illustrazione su Devops

Percorso di apprendimento DevOps

Funzione Demo Den per demo con esperti Atlassian

Come Bitbucket Cloud funziona con Atlassian Open DevOps

Iscriviti alla nostra newsletter DevOps

Thank you for signing up