¿Cómo colorear la consola Git?

Hace poco vi que el git consola en Windows está coloreada, por ejemplo, verde para adiciones, rojo para eliminaciones, etc. ¿Cómo coloreo mi git consola asi?

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

preguntado el 12 de junio de 12 a las 15:06

A partir de git1.8.4, debería ver los colores de forma predeterminada. Ver mi respuesta a continuación. -

@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 extraño, lo probaré más tarde, pero ¿qué pasa con un git 2.1+? (como comento abajo en stackoverflow.com/questions/10998792/…) -

Este es un enlace bastante útil para valores de color, atributos, etc.: espejos.edge.kernel.org/pub/software/scm/git/docs/… -

13 Respuestas

As señaló by @VonC, color.ui por defecto es auto desde Git 1.8.4


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

git config --global color.ui auto

La color.ui es una metaconfiguración que incluye todos los diversos color.* configuraciones disponibles con git comandos Esto se explica en profundidad en git help config.

Básicamente, es más fácil y está más preparado para el futuro que configurar los diferentes color.* ajustes por separado.

Explicación detallada de la git config documentación:

color.ui: esta variable determina el valor predeterminado para variables como color.diff y color.grep que controlan el uso de 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 el --color opción. Configúralo en always si desea que todas las salidas no destinadas al consumo de la máquina utilicen color, para true or auto si desea que dicha salida use color cuando se escriba en el terminal, o para false or never si prefiere que los comandos de git no usen color a menos que esté habilitado explícitamente con alguna otra configuración o el --color .

Respondido 01 Abr '19, 09:04

Esto también funciona en OSX, no solo en Linux como hacía la pregunta: StackExchange lo que diablos

Probablemente necesite agregar 'verdadero' al final. git config --global color.ui automático verdadero - Vamshi

@Skeptor: no, auto es suficiente. - Joel Purrá

@Phani: sí, es persistente. - Joel Purrá

Es persistente porque añade la ui = auto entrada al [color] sección en el usuario ~/.gitconfig expediente. - Andris

Por ejemplo, vea https://web.archive.org/web/20080506194329/http://www.arthurkoziel.com/2008/05/02/git-configuration/

La parte interesante es

Salida coloreada:

git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto

respondido 14 mar '19, 07:03

Estoy usando una versión anterior de git y la configuración color.ui auto no funcionó para mí, esto lo hizo. Gracias. - Matt K

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

Respondido 26 Oct 20, 14:10

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

git config --global color.ui true

Respondido 06 ago 13, 19:08

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

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

Entonces verás los colores por defecto.

Respondido el 04 de Septiembre de 13 a las 12:09

(bueno, incluso Windows, dependiendo de la terminal: stackoverflow.com/a/12133244/6309) - VonC

Usando Ubuntu en 2014, instalé git y aún tenía que ejecutar git config --global color.ui auto. Lo mismo es cierto para mi Mac, el único que tiene por defecto auto fue Git Bash en mi PC con Windows. - sarga

@sargas Claro, necesitas instalar de un PPA: launchpad.net/~git-core/+archive/ppa (para Ubuntu) o git-scm.com/download/mac (para Mac) - VonC

Ya veo, así que depende de la fuente. Agradezco su tiempo para comentar esto. - sarga

En su ~/.gitconfig archivo, simplemente agregue esto:

[color]
  ui = auto

Se encarga de todos tus comandos de git.

Respondido 08 Jul 14, 18:07

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

vim ~/.gitconfig

y luego agregue:

[color]
  diff = auto
  status = auto
  branch = auto

Respondido el 13 de junio de 15 a las 00:06

como mencionó @chuntao-lu [color] ui = auto es suficiente. - chacko mateo

GIT utiliza la salida en color de forma predeterminada, 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 el comando requerido desde aquí.

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

 git config color.ui  true 

Respondido 26 Feb 16, 13:02

Bueno, si no está satisfecho con la configuración predeterminada, puede usar Código de escape ANSI para ayudarlo a establecer el color, y si desea modificar algún texto, puede escribir bash para ayudarlo. ver como a continuación:

Ejemplos

# .gitconfig

[alias]
    st-color = "!f() { \
        echo -n -e '\\033[38;2;255;0;01m\\033[4m' ;\
        git status -s | grep ' D' | \
        sed -e 's/^ ./DELETE:/' ; \
        echo -n -e '\\033[m' ;\
        \
        echo -n -e '\\033[48;2;128;128;128m' ;\
        echo -n -e '\\033[38;2;0;255;01m' ;\
        git status -s | grep ' [AM]' | \
        sed -e 's/^ ./NEW OR MODIFY:/' ; \
        echo -n -e '\\033[m' ;\
        \
        echo -n -e '\\033[38;2;255;0;255m' ;\
        echo Rename ;\
        git status -s | grep 'R ' | \
        sed -e 's/^..//' ; \
        echo -n -e '\\033[m' ;\
    }; f"

manifestación

enter image description here

Explicación

  1. puedes escribir el guión largo en .gitconfig use la sintaxis de la siguiente manera:

    [alias]
        your-cmd = !f() { \
            \
        }; f"
    
  2. echo -n -e (ver más echo)

    • -n = No genera una nueva línea al final.
    • -e Habilita la interpretación de la siguiente barra invertida con escape
  3. \\033[38;2;255;0;0m\\033[4m (ver más Parámetros SGR)

    • \\033[38;2;255;0;0m : 38 media de proa color. 255;0;0 = Rojo | r;g;b
    • \\033[4m : subrayar
  4. grep : El comando grep se usa para buscar texto.

  5. sed -e 's/be_replace_string/new_string/' reemplace la cadena por una nueva cadena.

Respondido 07 Jul 20, 10:07

Este planteamiento de « aquí es otro ejemplo. - Carson

Con Git 2.18, tiene más control sobre cómo desea especificar los colores en la consola.
La "git configEl comando " usa opciones separadas p.ej "--int""--bool", etc. para especificar qué tipo quiere la persona que llama que se interprete el valor como.

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

Vea confirmar fb0dc3b (18 de abril de 2018), y confirmar 0a8950b (09 abr 2018) por Taylor Blau (ttaylorr).
(Fusionada por Junio ​​C Hamano - gitster -- in cometer e3e042b08 de mayo de 2018)

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

git config ha permitido durante mucho tiempo que las personas que llaman proporcionen un "especificador de tipo", que instruye git config para (1) asegurarse de que los valores entrantes se puedan interpretar como ese tipo, y (2) que los valores salientes se canonicen bajo ese tipo.

En otra serie, proponemos extender esta funcionalidad con --type=color y --default para reemplazar --get-color.

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

Actualmente, git config no es compatible con este tipo de coloración, pero debemos tener cuidado de no poner en cuclillas esta opción demasiado pronto, de modo que git config puede apoyar --color (en el sentido tradicional) en el futuro, si así se desea.

En este parche, apoyamos --type=<int|bool|bool-or-int|...> además de --int, --bool, y etc.
Esto permite que el próximo parche antes mencionado admita la consulta de un valor de color con un valor predeterminado a través de --type=color --default=..., sin derrochar --color.

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

Así que antes tenías --bool y --int, ahora (documentación):

--type <type>

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

Válido <type>incluyen:

  • 'bool': canonicalizar los valores como "true"O"false".
  • 'int': canonicaliza los valores como números decimales simples. Un sufijo opcional de 'k','m', o'g' hará que el valor se multiplique por 1024, 1048576 o 1073741824 al ingresarlo.
  • 'bool-or-int': canonicalizar de acuerdo con 'bool"O"int', como se describió anteriormente.
  • 'path': canonicaliza agregando un encabezado ~ al valor de $HOME y ~user al directorio de inicio del usuario especificado. Este especificador no tiene efecto al establecer el valor (pero puede usar git config section.variable ~/ desde la línea de comando para permitir que su shell haga 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 ningún 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 pequeña diferencia que no estaba documentada, que ahora está arreglada.

Vea cometer cd8e759 (05 de marzo de 2019) por jeff rey (peff).
(Fusionada por Junio ​​C Hamano - gitster -- in cometer f6c75e3, 20 de marzo de 2019)

config: documento --type=color la salida es una línea completa

A pesar de que el más nuevo "--type=color"opción a"git config" está destinado a ser compatible hacia arriba con el tradicional "--get-color", a diferencia de esta última, su salida no es una línea incompleta a la que le falte el LF al final.
Eso lo hace consistente con la salida de otros tipos como "git config --type=bool".

documentarlo, ya que en ocasiones sorprende a los usuarios desprevenidos.

Esto ahora dice:

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


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

Vea cometer 81e3db4 (19 de enero de 2020) por Lucio Hu (lebensterben).
(Fusionada por Junio ​​C Hamano - gitster -- in cometer 7050624, 30 de enero de 2020)

templates: arreglar la opción de tipo en desuso --bool

Firmado por: Lucius Hu

La --bool opción de git-config está marcado como histórico, y se recomienda a los usuarios que utilicen --type=bool preferiblemente.
Esta confirmación reemplaza todas las apariciones de --bool en las plantillas.

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

Respondido 03 Feb 20, 14:02

Mejorando los colores de 'tipo rama' de Git en Windows 10:

mostrando comando git branch -avv para todos los ejemplos...


1. Esquema de color predeterminado de Git:

git config --system --remove-section color.branch

enter image description here


2. Colores de rama dados en otro https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be en esta página:

git config --system color.branch.local "amarillo" git config --system color.branch.current "amarillo inverso" git config --system color.branch.remote "verde"

enter image description here


3. Esquema de color de rama posiblemente mejorado:

git config --system color.branch.local "amarillo" git config --system color.branch.current "brightwhite yellow" git config --system color.branch.remote "normal green" git config --system color.branch. aguas arriba "cian blanco brillante"

enter image description here


4. Haz el tuyo propio:

Especifique el color de primer plano más un color de fondo (opcional). El conjunto de colores que tienen un efecto en Windows 10 se dan de acuerdo con la siguiente expresión regular (sí, puede usar brightblack y es de hecho bastante útil):

(normal|(brillante)?(negro|rojo|verde|amarillo|azul|magenta|cian|blanco))

Por lo que puedo decir, el dim opción (ver enlace de documentos en la parte inferior) no hace nada en la consola de Windows 10, y el bold opción tiene el mismo efecto que una bright* color. Ahora recuerde la sintaxis de configuración que se muestra en los ejemplos:

git config <config-type> color.branch.<slot>  "<fg> <bg>"

El parámetro <config-type> es típicamente --system or --global. Si se omite, los colores especificados solo se aplicarán al repositorio actual. Con los nombres de los colores que se acaban de detallar, puede establecer el primer plano <fg> y antecedentes <bg> colores para tipos de rama específicos, donde <slot> es uno de los siguientes:

  • current (la rama actual)
  • local (una sucursal local)
  • remote (una rama de seguimiento remoto en refs/remotes/)
  • upstream (rama de seguimiento ascendente)
  • plain

Como siempre, puede mostrar toda su configuración de git, que incluirá cualquiera de las opciones que haya configurado como se describe aquí, a través del siguiente comando:

git config -l --show-origin

Tenga en cuenta que también hay un conjunto adicional de opciones de configuración que se relacionan con los colores de salida del registro (no discutidos aquí):

git config --system color.decorate.(branch|remoteBranch|tag|stash|HEAD|grafted) <color>

referencia: https://git-scm.com/docs/git-config

Respondido el 23 de Septiembre de 21 a las 20:09

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. Guarde el archivo.

Simplemente cambie cualquier archivo en su repositorio local y haga

git status

Respondido el 23 de Septiembre de 21 a las 02:09

Supongamos que desea que la rama actual sea amarilla y que todas las demás ramas sean cian en negrita. Estoy considerando que desea que estos cambios se realicen localmente, es decir, en su repositorio actual y no para todos los repositorios presentes en su sistema. Vaya al archivo .git usando "cd .git" y luego abra el archivo "config". Dentro del archivo de configuración, escriba el contenido a continuación sin cambiar nada más en el archivo de configuración.

 [color]
         ui=true
    [color "branch"]
         local=cyan bold 
         current=yellow bold

Y luego guarde el archivo de configuración. Abra la consola git y realice rama de git. Verás la diferencia

Respondido 31 Oct 21, 16:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.