我很好奇git log --graph
中线条的含义是什么?
是的,我问的是|
/
\
行连接控制台输出左边的提交*
。
问题#1
这些颜色有一些隐藏的含义吗?
或者它们是伪随机选择的?
问题#2
有时重叠(但断开连接)的线具有相同的颜色
例如,请参见上面屏幕截图中的紫色线条:
a55
到e1c
3c1
到043
是否有可能要求git明智地选择颜色以避免孤立(没有共同提交)相同的颜色线重叠?
我希望图表更易于阅读。
答案 0 :(得分:9)
颜色仅用于帮助您查看与其他线条不同的线条。要回答问题#1,它们不是伪随机分配的,而是顺序,每次git log --graph
选择一个新的"列号"。不幸的是,我知道有两个问题。两者都与你的问题#2相关联。
Here is the full list of colors by name:
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,
从视觉上看,很多这些颜色和#34;看起来都是一样的#34; (或者类似的,可以说是难以区分的)。特别是,我发现"大胆"那些看起来太像'"常规"除非有很多字母印在"粗体",即我的Mac终端字体"粗体"与标准重量相比,它没有那么大胆。例如,在Git的Git存储库上运行git log --graph --decorate --oneline --all
的图表中,这使得许多行在视觉上过于相似。
编辑:现在可以使用新的log.graphColors
配置条目从Git 2.12开始修复(或解决方法)。这是逗号分隔的颜色名称或颜色编号列表(请参阅the git config
documentation entry for "color" in the Values section)。
其次,"列号"目前,实际上并不是行的列号。相反,它是提交的列号。线条颜色从该提交向上到其上方的提交。图像快照中的所有洋红色线都会转到第0列中打印的提交:a55fd8d
和3c1494a
都位于"列0和#34;中。 (它们都是合并提交,因此它们合并了传入的行。)
是否有可能要求git明智地选择颜色以避免孤立(没有共同提交)相同的颜色线重叠?
您始终可以克隆Git repository for Git并编写新代码。我会注意到,现有的graph.c差不多有1400行。
答案 1 :(得分:4)
在此提交73c727d69f47572bf7f21fa31831f9a3fdad944c(“log --graph:使用config log.graphColors自定义图形行”,2017-01-19)中,可以选择颜色log.graphColors
config。
即使使用标准终端,如果您的背景颜色既不是黑色也是如此 或白色,然后图形线可能与您的背景匹配并变为 隐。您可以排除背景颜色(或仅仅是颜色) 你讨厌这个。
我使用Git Bash并因上述原因排除了GIT_COLOR_BLUE
颜色。
我可以使用任何十六进制颜色代码(至少在Git Bash上)。以下配置设置仅使用三种颜色。
[log]
graphColors = "#ffffff",red,green
答案 2 :(得分:0)
请注意,如果章鱼合并,则这些颜色不是准确,这意味着合并提交中的更多多于2个父母。
章鱼合并的“ git log --graph
”有时颜色不正确,这在Git 2.24(2019年第四季度)中得到了证明和记录,但尚未修复。
请参见commit 11c21f2的commit 25eb905,commit 63be8c8,commit a7a5590,commit 94ba151,Denton Liu (Denton-L
)(2019年10月4日)。
(由Junio C Hamano -- gitster
--在commit 5b900fb中合并,2019年10月15日)
t4214
:演示章鱼图着色失败签名人:刘登顿
章鱼合并的图形着色逻辑当前有一个错误。 git.git与74c7cfa875(http://members.cox.net/junkio/
git-jc
。git的合并,2005年5月5日)可以看到,其第二个孩子是211232bae6(章鱼合并以下五个补丁中的一个。,2005-05-05)。如果有人跑步
git log --graph 74c7cfa875
可以看到章鱼合并的颜色不正确。
特别是,水平虚线仅用一种颜色显示。每个水平破折号应是其右下角线条的颜色。取而代之的是,它们当前是底部线条的颜色。