¿Cómo colorear la consola Git?

371

Recientemente vi que la gitconsola en Windows está coloreada, por ejemplo, verde para adiciones, rojo para eliminaciones, etc. ¿Cómo coloreo mi gitconsola de esa manera?

Para instalarlo, utilicé el comando: $ sudo apt-get install git-core

MauroPorras
fuente
66
A partir de git1.8.4, debería ver los colores por defecto. Vea mi respuesta a continuación .
VonC
1
@VonC git 1.9.1 en Ubuntu 14.04, no sucedió. Tuve que configurar la configuración de la respuesta de JoelPurra yo mismo.
Izkata
1
@Izkata extraño, lo probaré más tarde, pero ¿qué pasa con un git 2.1+? (como comenté a continuación en stackoverflow.com/questions/10998792/… )
VonC

Respuestas:

682

Como se ha señalado por @VonC , color.uipor defecto autoya que Git 1.8.4


De la pregunta de Unix y Linux Stackexchange ¿ Cómo colorear la salida de git? y la respuesta de @Evgeny :

git config --global color.ui auto

La color.uies una metaconfiguración que incluye todas las diversas color.*configuraciones disponibles con gitcomandos. Esto se explica en profundidad en git help config.

Básicamente, es más fácil y tiene más pruebas de futuro que establecer las diferentes color.*configuraciones por separado.

Explicación detallada de la git configdocumentación :

color.ui: Esta variable determina el valor predeterminado para variables como color.diffy color.grepque controlan el uso del color por familia de comandos. Su alcance se ampliará a medida que más comandos aprendan la configuración para establecer un valor predeterminado para la --coloropción. Establézcalo en alwayssi desea que toda la salida no destinada al consumo de la máquina use color, trueo autosi desea que dicha salida use color cuando se escribe en el terminal, falseo neversi prefiere que los comandos git no usen color a menos que esté habilitado explícitamente con algunos Otra configuración o la --coloropción.

Joel Purra
fuente
11
Esto también funciona en OSX, no solo en Linux, ya que la pregunta era
StackExchange What The Heck
Probablemente necesite agregar 'verdadero' al final. git config --global color.ui auto true
Vamshi
66
@Skeptor: no, autoes suficiente.
Joel Purra
2
@Phani: sí, es persistente.
Joel Purra
55
Es persistente porque agrega la ui = autoentrada a la [color]sección en el ~/.gitconfigarchivo del usuario .
Andris
30

Agregue a su archivo .gitconfig el siguiente código:

  [color]
    ui = auto
  [color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
  [color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
  [color "status"]
    added = yellow
    changed = green
    untracked = cyan
Víctor
fuente
7

Git colorea automáticamente la mayor parte de su salida si se lo solicita. Puedes ser muy específico sobre lo que quieres colorear y cómo; pero para activar todos los colores de terminal predeterminados, configure color.ui en verdadero:

git config --global color.ui true
Tanmay
fuente
6

En Ubuntu o cualquier otra plataforma (sí, ¡Windows también!); a partir de git1.8.4 , que se lanzó el 23/08/2013 , no tendrá que hacer nada :

Muchos tutoriales enseñan a los usuarios a configurar "color.ui" en "auto" como lo primero después de configurar " user.name/email" para presentarse a Git. Ahora la variable por defecto es " auto".

Entonces verá colores por defecto.

VonC
fuente
2
(bueno, incluso Windows, dependiendo del terminal: stackoverflow.com/a/12133244/6309 )
VonC
2
Usando Ubuntu en 2014, instalé git y aún tuve que ejecutarlo git config --global color.ui auto. Lo mismo es cierto para mi Mac, el único que por defecto autoera Git Bash en mi PC con Windows.
sargas
1
@sargas Claro, necesitas instalar desde un PPA : launchpad.net/~git-core/+archive/ppa (para Ubuntu) o git-scm.com/download/mac (para Mac)
VonC
1
Ya veo, así que depende de la fuente. Agradezco su tiempo para comentar sobre esto.
sargas
6

En su ~/.gitconfigarchivo, simplemente agregue esto:

[color]
  ui = auto

Se encarga de todos tus comandos git.

Chuntao Lu
fuente
5

Otra forma es editar el .gitconfig(crear uno si no existe), por ejemplo:

vim ~/.gitconfig

y luego agregue:

[color]
  diff = auto
  status = auto
  branch = auto
atupal
fuente
3
como @ chuntao-lu mencionó [color] ui = autoes suficiente.
Chacko Mathew
5

GIT usa resultados en color por defecto, pero en algunos sistemas como CentOS no está habilitado. Puedes habilitarlo así

git config --global color.ui  true 
git config --global color.ui  false 
git config --global color.ui  auto 

Puede elegir su comando requerido desde aquí.

Aquí --global es opcional para aplicar acciones para cada repositorio en su sistema. Si desea aplicar coloración para el repositorio actual solo entonces puede hacer algo como esto:

 git config color.ui  true 
Deepak Dixit
fuente
1

Con Git 2.18, tiene más control sobre cómo desea especificar los colores en la consola.
El git configcomando " " utiliza opciones separadas, por ejemplo, " --int", " --bool", etc. para especificar el tipo de llamada que quiere que se interprete el valor .

Un nuevo "--type=<typename> ha introducido " opción, que haría más limpio definir nuevos tipos.

Ver commit fb0dc3b (18 abr 2018), y commit 0a8950b (09 abr 2018) por Taylor Blau ( ttaylorr) .
(Fusionada por Junio ​​C Hamano - gitster- en commit e3e042b , 08 de mayo de 2018)

builtin/config.c: soporte --type=<type>como alias preferido para--<type>

git config ha permitido durante mucho tiempo la capacidad de las personas que llaman para proporcionar un 'especificador de tipo', que instruye git config a (1) garantizar que los valores entrantes se puedan interpretar como ese tipo y (2) que los valores salientes se canonicalicen bajo ese tipo.

En otra serie, proponemos ampliar esta funcionalidad con --type=colory --defaultreemplazar --get-color.

Sin embargo, tradicionalmente utilizamos --color para significar "colorear esta salida", en lugar de "este valor debe tratarse como un color".

Actualmente, git configno es compatible con este tipo de coloración, pero debemos tener cuidado de evitar ponernos en cuclillas sobre esta opción demasiado pronto, para que git configpueda admitir--color (en el sentido tradicional) en el futuro, si así se desea.

En este parche, admitimos --type=<int|bool|bool-or-int|...>además de --int, --booly etc.
Esto permite que el próximo parche mencionado anteriormente admita consultar un valor de color con una vía predeterminada --type=color --default=..., sin desperdiciar--color .

Mantenemos el comportamiento histórico de quejarse cuando --<type>se dan múltiples banderas de estilo heredado , así como extenderlo a --type=<type>banderas de estilo nuevo en conflicto . --int --type=int(y su par conmutativo) no se queja, pero --bool --type=int(y su par conmutativo) sí.

Así que antes tenía --booly --intahora ( documentación ):

--type <type>

' git config' asegurará que cualquier entrada o salida sea válida bajo las restricciones de tipo dadas, y canonizará los valores salientes en<type> la forma canónica.

Los válidos <type>incluyen:

  • ' bool': canonicaliza valores como " true" o " false".
  • ' int': canonicaliza valores como simples números decimales. Un sufijo opcional de ' k', ' m' o ' g' hará que el valor se multiplique por 1024, 1048576 o 1073741824 en la entrada.
  • ' bool-or-int': canonicalizar según ' bool' o 'int ', como se describió anteriormente.
  • ' path': canonicalizar agregando un líder ~al valor de $HOMEy ~useral directorio de inicio para el usuario especificado. Este especificador no tiene efecto al establecer el valor (pero puede usargit config section.variable ~/ desde la línea de comando para permitir que su shell realice la expansión).
  • ' expiry-date': canonicalizar mediante la conversión de una cadena de fecha fija o relativa a una marca de tiempo. Este especificador no tiene efecto al establecer el valor.
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

Tenga en cuenta que Git 2.22 (Q2 2019) explica " git config --type=color ..." está destinado a reemplazar " git config --get-color", pero hay una ligera diferencia que no se documentó, que ahora está solucionada.

Ver commit cd8e759 (05 mar 2019) por Jeff King ( peff) .
(Fusionada por Junio ​​C Hamano - gitster- en commit f6c75e3 , 20 mar 2019)

config: la --type=colorsalida del documento es una línea completa

A pesar de que la " --type=color" opción " " más nueva git configestá destinada a ser compatible con la --get-coloropción tradicional " ", a diferencia de esta última, su salida no es una línea incompleta que carece de LF al final.
Eso lo hace consistente con la salida de otros tipos como " git config --type=bool".

Documéntelo , ya que a veces sorprende a los usuarios desprevenidos.

Esto ahora lee:

--type=color [--default=<default>]se prefiere sobre --get-color (pero tenga en cuenta que --get-coloromitirá la nueva línea final impresa por --type=color).


Se puede ver git config --type=boolusado con Git 2.26 (Q1 2020) para reemplazar "git config --bool " llamadas en plantillas de muestra.

Ver commit 81e3db4 (19 de enero de 2020) por Lucius Hu ( lebensterben) .
(Fusionada por Junio ​​C Hamano - gitster- en commit 7050624 , 30 de enero de 2020)

templates: arregla la opción de tipo obsoleto --bool

Firmado por: Lucius Hu

La --boolopción a git-configestá marcada como histórica, y se recomienda a los usuarios que la utilicen --type=bool.
Esta confirmación reemplaza todas las ocurrencias de --boolen las plantillas.

También tenga en cuenta que, no se encuentran otras opciones de tipo de desuso, incluyendo --int, --bool-or-int, --path, o --expiry-date.

VonC
fuente
0

consulte aquí: https://nathanhoad.net/how-to-colours-in-git/

pasos:

  1. Abra ~ / .gitconfig para editar

    vi ~ / .gitconfig

  2. Pegue el siguiente código:

    [color]
      ui = auto
    [color "branch"]
      current = yellow reverse
      local = yellow
      remote = green
    [color "diff"]
      meta = yellow bold
      frag = magenta bold
      old = red bold
      new = green bold
    [color "status"]
      added = yellow
      changed = green
      untracked = cyan
    
  3. Guarda el archivo.

Simplemente cambie cualquier archivo en su repositorio local y haga

git status
gajanan malvade
fuente
Ya hay el mismo # answer-29320572 por Victor
criticabug