¿Cómo colorear la salida de git-status?

93

Quiero colorear la salida de git-status para que:

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

En cambio, veo archivos en etapas en verde y archivos sin etapas en azul: captura de pantalla de git-status

Mi .gitconfig está configurado con lo siguiente basado en algunas búsquedas:

[color]
status = auto

[color "status"]
added = green
changed = blue
untracked = magenta
deleted = red
Andy
fuente
2
Nota: git 2.9.1 admite atributos en cursiva y tacha. Vea mi edición a continuación.
VonC

Respuestas:

131

Desde git config doc :

color.status.<slot>

Utilice colores personalizados para colorear el estado. <slot>es uno de:

  • header (el texto del encabezado del mensaje de estado),
  • addedo updated(archivos que se agregan pero no se confirman),
  • changed (archivos que se modifican pero no se agregan al índice),
  • untracked (archivos que no son rastreados por git),
  • branch (la rama actual),
  • nobranch (el color en el que se muestra la advertencia de no rama, predeterminado en rojo),
  • localBrancho remoteBranch(los nombres de sucursales locales y remotas, respectivamente, cuando la información de seguimiento y sucursales se muestra en el formato abreviado de estado),
  • unmerged (archivos que tienen cambios no fusionados).

Los valores de estas variables se pueden especificar como en color.branch.<slot>.

Entonces esto funcionará:

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

Sin embargo:

new files = green
deleted files = red

No es posible: debes elegir un color:

  • si se agregan al índice, elegirán el color color.status.added.
  • si no se agregan al índice, elegirán el color o color.status.modified.

Por supuesto, como se ha comentado por elboletaire :

Recuerde habilitar la salida de color si no se ha habilitado previamente:

git config --global color.ui true

Shaun Luttin agrega:

El comando también puede tomar múltiples parámetros entre comillas. Esto incluye dos colores (fondo en primer plano) de esta lista:

normal, negro, rojo, verde, amarillo, azul, magenta, cian y blanco;

y también incluye un atributo (estilo) de esta lista:

negrita, tenue, ul, parpadear y revertir.

Entonces esto funcionará:

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

Nota: con git 2.9.1 (julio de 2016), el esquema de coloración de salida aprendió dos nuevos atributos, cursiva yHuelga, además de los existentes en negrita, reverso, etc.

Consulte la confirmación 9dc3515 , la confirmación 54590a0 , la confirmación 5621068 , la confirmación df8e472 , la confirmación ae989a6 , la confirmación adb3356 , la confirmación 0111681 (23 de junio de 2016) por Jeff King ( peff) .
(Combinado por Junio ​​C Hamano - gitster- en el compromiso 3c5de5c , 11 de julio de 2016)

También permite " no-" negar atributos

Usar " no-bold" en lugar de " nobold" es más fácil de leer y más natural de escribir (para mí, de todos modos, aunque fui la persona que introdujo "nobold" en primer lugar). Es fácil permitir ambos.

VonC
fuente
30
Recuerde habilitar la salida de color si no se ha habilitado previamente:git config --global color.ui true
elboletaire
1
@elboletaire buen punto. Lo he incluido en la respuesta para mayor visibilidad.
VonC
1
Gracias, color.ui es la respuesta.
Robeezy