Git bonito formatting de colors

Estoy intentando configurar bonitos colors de formatting para Git. Por lo que puedo decir, la versión 1.6.0 solo reconoce rojo, verde y azul.

$ git log --pretty=format:"%Cnetworkingnetworking%Creset %Cgreengreen%Creset %Cyellowyellow%Creset %Cblueblue%Creset %Cmagentamagenta%Creset %Ccyancyan%Creset %Cwhitewhite%Creset" networking green %Cyellowyellow%Creset blue %Cmagentamagenta %Ccyancyan %Cwhitewhite 

Además, ninguno de los colors funciona con el formatting de color entre paréntesis.

¿Hay alguna manera de enumerar los colors de formatting bonitos disponibles para Git?

Desafortunadamente, esto está en una máquina henetworkingada de SCO OpenServer 5.0.7 y la última versión de Git lanzada por SCO Skunkworks fue 1.6.0.3.

No tengo una versión anterior de git para verificar que los colors que no sean networking , blue y green sean compatibles.

Aunque, una cosa que noté incluso con las versiones recientes de git (como 1.7.10 que utilicé) es que los colors que no sean networking , green y blue deben estar entre paréntesis () . Para networking , green y blue , los paréntesis son opcionales.

Así que intenta esto:

 git log --pretty=format:"%Cnetworkingnetworking%Creset %Cgreengreen%Creset %C(Yellow)yellow%Creset %Cblueblue%Creset %C(magenta)magenta%Creset %C(cyan)cyan%Creset %C(white)white%Creset" 

La list de colors que conozco al less son:

 normal black networking green yellow blue magenta cyan white 

Se puede combinar con uno de estos attributes:

 bold dim ul blink reverse 

Si intenta cambiar los colors con .gitconfig , debe poder especificar dos colors: primer plano y background, y puede combinarlo con un atributo.

Git 2.3.0 (febrero de 2015) permitirá (gracias a Jeff Kink ( peff ) ):


  • Valores de color RGB de 24 bits ( commit 17a4be2 )

parse_color : admite valores RGB de 24 bits

Algunos terminales (como XTerm) permiten especificaciones de color RGB de 24 bits utilizando una extensión del esquema de color ANSI regular.
Permitiremos que los usuarios especifiquen colors RGB hexadecimales, lo que permite la característica más importante de las decoraciones con refracción de color rosa intenso :

 git log --format="%h%C(#ff69b4)%d%C(reset) %s" 

  • una mejor gestión de los attributes de color:

parse_color : reconoce " no$foo " para borrar el atributo $foo

Puede activar attributes de text ANSI como "reverso" poniendo "reverso" en su especificación de color. Sin embargo, no puedes pedir que se apague el reverso.

Para casos comunes, esto no importa. Debería activar "reversa" al comienzo de una sección coloreada, y luego borrar todos los attributes con un "reinicio".

Sin embargo, es posible que desee activar algunos attributes, luego deshabilitarlos selectivamente. Por ejemplo:

 git log --format="%C(bold ul yellow)%h%C(noul) %s" 

subraya solo el hash, pero sin la necesidad de volver a especificar el rest de los attributes.

Esto también puede ayudar a los progtwigs de terceros, como contrib/diff-highlight , que quieran activar o desactivar algunos attributes sin interrumpir el colorido existente.

Tenga en count que algunas especificaciones de attributes probablemente bold nobold sentido (por ejemplo, " bold nobold "). No nos molestamos en marcar tales construcciones, y en cambio dejar que el terminal lo resuelva.

Comparte mi formatting de logging git:

 $ git log --graph --pretty=format:'%C(magenta)%h%Creset -%C(networking)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit 

También puede agregar un alias en ~ / .gitconfig :

 [alias] logs = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(networking)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit 

luego puede usar un alias como lo define en ~/.gitconfig .

 $ git logs