what the tag pretty oneline log examples does git graph git-log

the - ¿Qué significan los colores de línea en git log--graph?



git tag (2)

En este commit 73c727d69f47572bf7f21fa31831f9a3fdad944c ("log --graph: personalice las líneas del gráfico con config log.graphColors", 2017-01-19), es posible elegir los colores con la configuración log.graphColors .

Incluso con el terminal estándar, si su color de fondo no es blanco o negro, entonces la línea del gráfico puede coincidir con su fondo y quedar oculta. Puedes excluir el color de fondo (o simplemente los colores que odias) con esto.

Utilizo Git Bash y excluyo el color GIT_COLOR_BLUE por la razón anterior.

Puedo usar cualquier código de color hexadecimal (al menos en Git Bash). La configuración por debajo de la configuración utiliza solo tres colores.

[log] graphColors = "#ffffff",red,green

Tengo curiosidad por lo que significan los colores de línea en git log --graph ?

Sí, estoy preguntando por líneas | / / que conecta las confirmaciones * en el borde izquierdo de la salida de la consola.

Pregunta 1
¿Estos colores tienen algún significado oculto?
¿O son elegidos seudoaleatoriamente?

Pregunta 2
A veces, las líneas superpuestas (pero desconectadas) tienen el mismo color.
Por ejemplo, vea en las líneas moradas en la captura de pantalla de arriba:

  • primera linea de a55 a e1c
  • segunda línea de 3c1 a 043

¿Es posible pedirle a git que elija sabiamente los colores para evitar el solapamiento de las líneas de color aisladas (que no tienen un comillas común)?
Quiero que la gráfica sea más fácil de leer.


Los colores solo tienen el propósito de ayudarlo a ver las líneas como distintas de otras líneas. Para responder a la pregunta # 1, se asignan no pseudoaleatoriamente, sino secuencialmente , cada vez que git log --graph selecciona un nuevo "número de columna". Desafortunadamente hay dos problemas que conozco. Ambos se unen a tu pregunta # 2.

Aquí está la lista completa de colores por nombre :

GIT_COLOR_RED, GIT_COLOR_GREEN, GIT_COLOR_YELLOW, GIT_COLOR_BLUE, GIT_COLOR_MAGENTA, GIT_COLOR_CYAN, GIT_COLOR_BOLD_RED, GIT_COLOR_BOLD_GREEN, GIT_COLOR_BOLD_YELLOW, GIT_COLOR_BOLD_BLUE, GIT_COLOR_BOLD_MAGENTA, GIT_COLOR_BOLD_CYAN,

Visualmente, muchos de estos colores "se ven iguales" (o lo suficientemente similares como para ser indistinguibles). En particular, encuentro que los "en negrita" se parecen mucho a los "normales" a menos que haya unas cuantas letras impresas en "en negrita", es decir, "negrita" de la fuente de mi Terminal Mac simplemente no es tan audaz que su peso estándar. Esto hace que muchas líneas sean visualmente similares en el gráfico para git log --graph --decorate --oneline --all ejecutan en el repositorio de Git para Git, por ejemplo.

Edición : ahora es corregible (o solucionable), a partir de Git 2.12, usando la nueva entrada de configuración log.graphColors . Esta es una lista separada por comas de nombres de colores o números de colores (consulte la entrada de documentación de git config para "color" en la sección Valores ).

En segundo lugar, el "número de columna" es, actualmente, no el número de columna de la línea . En su lugar, es el número de columna de la confirmación . El color de la línea sube desde ese compromiso, hasta el compromiso sobre él. Todas las líneas magenta en su instantánea de la imagen van a las confirmaciones impresas en la columna # 0: tanto a55fd8d como 3c1494a están en "columna 0". (Ambos son compromisos de fusión, por lo que consolidan las líneas entrantes).

¿Es posible pedirle a git que elija sabiamente los colores para evitar el solapamiento de las líneas de color aisladas (que no tienen un comillas común)?

Siempre puedes clonar el repositorio de Git para Git y escribir un nuevo código. graph.c que el graph.c existente tiene casi 1400 líneas de largo, sin embargo.