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

Ego*_*off 22 git graph git-log

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

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

git log --graph输出的一部分

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

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

  • 第一行从.a55e1c
  • 从第二行3c1043

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

tor*_*rek 10

颜色仅用于帮助您查看与其他线条不同的线条.为了回答问题#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,
Run Code Online (Sandbox Code Playgroud)

在视觉上,这些颜色中的许多颜色"看起来相同"(或类似的足以使其难以区分).特别是,我发现"粗体"的看起来太像"常规"的,除非有很多字母以"粗体"打印,即我的Mac终端字体的"粗体"并没有那么大胆比它的标准重量.例如,这使得git log --graph --decorate --oneline --all在Git的Git存储库上运行的图中的许多行在视觉上过于相似.

编辑:现在可以使用新的log.graphColors配置条目从Git 2.12开始修复(或可以解决).这是逗号分隔的颜色名称或颜色编号列表(请参阅"值"部分中"颜色" git config文档条目).

其次,"列号"目前实际上不是该行列号.相反,它是提交列号.线条颜色从该提交上升到上面的提交.在图像快照中的所有红色线条去犯下印在列#0:既a55fd8d3c1494a在"列0".(它们都是合并提交,因此它们合并了传入的行.)

是否有可能要求git明智地选择颜色以避免孤立(没有共同提交)相同的颜色线重叠?

您始终可以克隆Git的Git存储库并编写新代码.我会注意到现有的graph.c已接近1400行.


hIp*_*pPy 6

在此提交73c727d69f47572bf7f21fa31831f9a3fdad944c(“log --graph:使用 config log.graphColors 自定义图形线条”,2017-01-19)中,可以使用config选择颜色。log.graphColors

即使使用标准终端,如果您的背景颜色既不是黑色也不是白色,那么图形线可能会与您的背景相匹配并被隐藏。你可以用这个排除你的背景颜色(或者只是你讨厌的颜色)。

我使用 Git Bash 并且GIT_COLOR_BLUE出于上述原因排除了颜色。

我可以使用任何十六进制颜色代码(至少在 Git Bash 上)。下面的配置设置仅使用三种颜色。

[log]
    graphColors = "#ffffff",red,green
Run Code Online (Sandbox Code Playgroud)