Git 2.3.0(2015 年 2 月)将允许(感谢 Jeff Kink (peff)):
parse_color:支持 24 位 RGB 值
某些终端(如 XTerm)允许使用常规 ANSI 颜色方案的扩展来实现完整的 24 位 RGB 颜色规范。
让我们允许用户指定十六进制 RGB 颜色,启用最重要的粉红色参考装饰功能:
git log --format="%h%C(#ff69b4)%d%C(reset) %s"
parse_color:识别“no$foo”清除$foo属性
您可以通过在颜色规范中添加“reverse”来启用“reverse”等 ANSI 文本属性。但是,您不能要求关闭倒车功能。
对于常见情况,这无关紧要。您可以在彩色部分的开头打开“反转”,然后使用“重置”清除所有属性。
但是,您可能希望打开某些属性,然后选择性地禁用其他属性。例如:
git log --format="%C(bold ul yellow)%h%C(noul) %s"
仅对哈希进行下划线,但无需重新指定其余属性。
这也可以帮助第三方程序,例如 contrib/diff-highlight,它们希望在不破坏现有颜色的情况下打开/关闭某些属性。
请注意,某些属性规范可能是无意义的(例如,“bold nobold”)。我们不费心去标记这样的结构,而是让终端对其进行分类。
在 Git 2.26(2020 年第一季度)中,基本的 7 种颜色学习了更亮的对应颜色(例如“brightred”)。
见commit c444f03、commit 1751b09、commit 4a28eb0(2020 年 1 月 21 日)Eyal Soha (``)。
(由Junio C Hamano -- gitster -- 合并,commit 87f17d7,2020 年 2 月 25 日)
color.c: 支持明亮的 aixterm 颜色
签字人:Eyal Soha
这些颜色是 3 位颜色的明亮变体。
它们分别位于 90-97 和 100-107 范围内,而不是前景的 30-37 范围和背景的 40-47 范围。
git config documentation 现在包括:
接受的基本颜色为normal、black、red、green、yellow、
blue、magenta、cyan 和 white。
给出的第一个颜色是前景;第二个是背景。
除normal 之外的所有基本颜色都有一个明亮的变体,可以通过在颜色前面加上bright 来指定,例如brightred。
在 Git 2.35(2022 年第一季度)中,“default”和“reset”颜色已添加到我们的调色板中。
参见commit de65851(2021 年 10 月 26 日)和 commit 05f1f41、commit aeefc18(2021 年 10 月 25 日)Robert Estelle (rwe)。
(由 Junio C Hamano -- gitster -- 合并于 commit 15209c8,12 月 15 日2021)
color: 允许颜色以“reset”为前缀
签字人:罗伯特·埃斯特尔
“reset”以前被视为代表\e[m的独立特殊颜色名称。
现在,它可以应用于其他颜色属性,无需隐式属性继承即可实现精确规范。
例如,“重置绿色”现在呈现 \e[;32m,这被解释为“重置所有内容;然后将前景设置为绿色”。
这意味着背景和其他属性也将重置为默认值。
以前,这是不可能用单一颜色来表示的:“reset”可以单独指定,也可以是带有属性的颜色,但是像清除背景颜色这样的事情是不可能的。
有一个单独的更改引入了“默认”颜色名称来帮助实现这一点,但即便如此,上述内容也只能通过显式禁用每个属性来表示:
绿色 默认 no-bold no-dim no-italic no-ul no-blink no-reverse no-strike
config 现在包含在其man page 中:
伪属性reset重置之前的所有颜色和属性
应用指定的颜色。例如,reset green 将导致
在没有任何活动的绿色前景和默认背景中
属性。