git log --graph中的线条颜色是什么意思?

时间:2016-11-18 10:47:48

标签: git graph git-log

我很好奇git log --graph中线条的含义是什么?

是的,我问的是| / \行连接控制台输出左边的提交*

part of git log --graph output

问题#1
这些颜色有一些隐藏的含义吗? 或者它们是伪随机选择的?

问题#2
有时重叠(但断开连接)的线具有相同的颜色 例如,请参见上面屏幕截图中的紫色线条:

  • a55e1c
  • 的第一行
  • 3c1043
  • 的第二行

是否有可能要求git明智地选择颜色以避免孤立(没有共同提交)相同的颜色线重叠?
我希望图表更易于阅读。

3 个答案:

答案 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列中打印的提交:a55fd8d3c1494a都位于"列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 11c21f2commit 25eb905commit 63be8c8commit a7a5590commit 94ba151Denton Liu (Denton-L)(2019年10月4日)。
(由Junio C Hamano -- gitster --commit 5b900fb中合并,2019年10月15日)

  

t4214:演示章鱼图着色失败

     

签名人:刘登顿

     

章鱼合并的图形着色逻辑当前有一个错误。 git.git74c7cfa875http://members.cox.net/junkio/ git-jc。git的合并,2005年5月5日)可以看到,其第二个孩子是211232bae6(章鱼合并以下五个补丁中的一个。,2005-05-05)。

     

如果有人跑步

git log --graph 74c7cfa875
     

可以看到章鱼合并的颜色不正确。
  特别是,水平虚线仅用一种颜色显示。每个水平破折号应是其右下角线条的颜色。取而代之的是,它们当前是底部线条的颜色。