Come colorare l'output di git-status?


92

Voglio colorare l'output di git-status in modo che:

untracked files = magenta
new files = green
modified files = blue
deleted files = red

Sto invece vedendo i file staged in verde e file nonstaged in blu: screenshot di git-status

Il mio .gitconfig è configurato con quanto segue sulla base di alcune ricerche:

[color]
status = auto

[color "status"]
added = green
changed = blue
untracked = magenta
deleted = red

2
Nota: git 2.9.1 supporta gli attributi italic e strike. Vedi la mia modifica di seguito.
VonC

La risposta di seguito risponde alla tua domanda?
VonC

Risposte:


130

Dal documento git config :

color.status.<slot>

Usa colore personalizzato per la colorazione dello stato. <slot>è uno di:

  • header (il testo dell'intestazione del messaggio di stato),
  • addedo updated(file aggiunti ma non salvati),
  • changed (file che vengono modificati ma non aggiunti nell'indice),
  • untracked (file che non sono tracciati da git),
  • branch (il ramo attuale),
  • nobranch (il colore in cui viene visualizzato l'avviso di assenza di ramo, predefinito rosso),
  • localBranchoppure remoteBranch(i nomi delle filiali locali e remote, rispettivamente, quando le informazioni sulla diramazione e sul monitoraggio sono visualizzate nel formato breve di stato),
  • unmerged (file con modifiche non unite).

I valori di queste variabili possono essere specificati come in color.branch.<slot>.

Quindi questo funzionerà:

git config color.status.changed blue
git config color.status.untracked magenta

Però:

new files = green
deleted files = red

Non è possibile: devi scegliere un colore:

  • se vengono aggiunti all'indice, sceglieranno il colore per color.status.added.
  • se non vengono aggiunti all'indice, sceglieranno il colore o color.status.modified.

Ovviamente, come commentato da elboletaire :

Ricorda di abilitare l'output di colorazione se non è stato abilitato in precedenza:

git config --global color.ui true

Shaun Luttin aggiunge:

Il comando può anche accettare più parametri tra virgolette. Questo include due colori (sfondo in primo piano) da questo elenco:

normale, nero, rosso, verde, giallo, blu, magenta, ciano e bianco;

e include anche un attributo (stile) da questo elenco:

grassetto, debole, ul, lampeggiante e inverso.

Quindi questo funzionerà:

git config color.status.changed "blue normal bold"
git config color.status.header "white normal dim"

Nota: con git 2.9.1 (luglio 2016), lo schema di colorazione dell'output ha appreso due nuovi attributi, corsivo esciopero, oltre a grassetto, inverso, ecc. esistenti

Vedere commit 9dc3515 , commit 54590a0 , commit 5621068 , commit df8e472 , commit ae989a6 , commit adb3356 , commit 0111681 (23 giugno 2016) di Jeff King ( peff) .
(Fuso da Junio ​​C Hamano - gitster- in commit 3c5de5c , 11 luglio 2016)

Permette anche " no-" di negare gli attributi

Usare " no-bold" invece di " nobold" è più facile da leggere e più naturale da digitare (per me, comunque, anche se sono stata la persona che ha introdotto "nobold" in primo luogo). È facile consentire entrambi.


30
Ricordarsi di abilitare l'output di colorazione se non è stato abilitato in precedenza:git config --global color.ui true
elboletaire

1
@elboletaire buon punto. L'ho incluso nella risposta per una maggiore visibilità.
VonC

1
Grazie, color.ui è la risposta.
Robeezy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.