颜色只是为了帮助您将线条与其他线条区分开来。回答问题#1,它们不是伪随机分配的,而是按顺序分配的,每次git log --graph
选择一个新的“列编号”。不幸的是,我知道其中有两个问题。这两个问题都与您的问题#2有关。
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,
视觉上,这些颜色很多都“看起来一样”(或者足够相似,难以区分)。特别是,在较少的字母以“bold”打印的情况下,“bold”的颜色与标准字体的颜色非常相似,即我的Mac终端字体的“bold”并不比它的标准字重更加粗体。例如,在Git存储库的git log --graph --decorate --oneline --all
运行中,使得许多行在图形中过于相似。
编辑:现在可以修复(或解决)这个问题了,从Git 2.12开始,可以使用新的log.graphColors
配置项。这是一个逗号分隔的颜色名称或颜色序号列表(请参见值部分中对“颜色”文档条目的git config
文档输入)。
其次,“列号”实际上并不是该行的列号,而是提交的列号。该行的颜色从该提交向上延伸到其上方的提交。您的图像快照中的所有品红色线路都进入列#0中打印的提交:a55fd8d
和3c1494a
都在“列0”中。 (它们都是合并提交,因此它们合并了传入的线路。)
是否可以要求git明智地选择颜色,以避免孤立(没有共同提交)的相同颜色线路重叠?
log.graphColors
配置(如果你想的话,你可以使用我的下面的答案)来选择颜色。虽然OP没有要求这个设置,但对大多数人来说,这个设置可以解决可读性问题。 - hIpPylog.graphColors
config选择颜色。
即使使用标准终端,如果您的背景颜色既不是黑色也不是白色,那么图形线条可能与您的背景相匹配并变得隐藏。您可以使用此功能排除您的背景颜色(或仅仅是您不喜欢的颜色)。
我使用Git Bash,并且出于上述原因排除了GIT_COLOR_BLUE
颜色。
我可以使用任何十六进制颜色代码(至少在Git Bash中)。下面的配置设置仅使用三种颜色。
[log]
graphColors = "#ffffff",red,green
请查看提交 11c21f2, 提交 25eb905, 提交 63be8c8, 提交 a7a5590, 提交 94ba151 (2019年10月04日) 由Denton Liu (Denton-L
)提交。
(由Junio C Hamano -- gitster
--合并于提交 5b900fb, 2019年10月15日)
t4214
: demonstrate octopus graph coloring failureSigned-off-by: Denton Liu
The graph coloring logic for octopus merges currently has a bug. This can be seen git.git with 74c7cfa875 (Merge of http://members.cox.net/junkio/
git-jc
.git, 2005-05-05), whose second child is 211232bae6 (Octopus merge of the following five patches., 2005-05-05).If one runs
git log --graph 74c7cfa875
one can see that the octopus merge is colored incorrectly.
In particular, the horizontal dashes are off by one color. Each horizontal dash should be the color of the line to their bottom-right. Instead, they are currently the color of the line to their bottom.