91

我正在尝试为 Git 设置漂亮的格式颜色。据我所知,1.6.0 版只能识别红色、绿色和蓝色。

$ git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %Cyellowyellow%Creset %Cblueblue%Creset %Cmagentamagenta%Creset %Ccyancyan%Creset %Cwhitewhite%Creset"
red green %Cyellowyellow%Creset blue %Cmagentamagenta %Ccyancyan %Cwhitewhite

此外,没有一种颜色适用于带括号的颜色格式。

有没有办法列出 Git 可用的漂亮格式颜色?

不幸的是,这是在旧的 SCO OpenServer 5.0.7 机器上,SCO Skunkworks 发布的最后一个 Git 版本是 1.6.0.3。

4

5 回答 5

155

我没有旧版本来git验证和以外red的颜色是否受支持。bluegreen

虽然,即使使用最新版本git(如我使用的 1.7.10),我注意到的一件事是 , 以外的颜色需要red在括号内。对于、和,括号是可选的。greenblue()redgreenblue

所以试试这个:

git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %C(Yellow)yellow%Creset %Cblueblue%Creset %C(magenta)magenta%Creset %C(cyan)cyan%Creset %C(white)white%Creset"

我至少知道的颜色列表是:

normal
black
red
green
yellow
blue
magenta
cyan
white

它可以与以下属性之一结合使用:

bold
dim
ul
blink
reverse
italic
strike
bright  # (Git 2.26, Q1 2020, example: brightred)

如果您尝试使用更改颜色,.gitconfig您应该能够指定两种颜色 -前景背景,您可以将其与属性结合使用。

于 2013-03-17T07:03:33.350 回答
43

Git 2.3.0(2015 年 2 月)将允许(感谢Jeff Kink ( peff)):


parse_color: 支持 24 位 RGB 值

某些终端(如 XTerm)允许使用对常规 ANSI 颜色方案的扩展来实现完整的 24 位 RGB 颜色规范。
让我们允许用户指定十六进制 RGB 颜色,从而启用粉红色 ref 装饰的最重要功能

git log --format="%h%C(#ff69b4)%d%C(reset) %s"

  • 更好地管理颜色属性:

parse_color: 识别“ no$foo”清除$foo属性

您可以通过在颜色规范中添加“reverse”来打开 ANSI 文本属性,例如“reverse”。但是,您不能要求关闭倒车。

对于常见情况,这无关紧要。您将在彩色部分的开头打开“反转”,然后使用“重置”清除所有属性。

但是,您可能希望打开某些属性,然后有选择地禁用其他属性。例如:

git log --format="%C(bold ul yellow)%h%C(noul) %s"

仅在哈希下划线,但无需重新指定其余属性。

这也可以帮助第三方程序,例如contrib/diff-highlight想要在不破坏现有颜色的情况下打开/关闭某些属性的程序。

请注意,某些属性规范可能是无意义的(例如,“ bold nobold”)。我们不费心标记此类结构,而是让终端对其进行分类。


使用 Git 2.26(2020 年第一季度),基本的 7 种颜色学习了更亮的对应物(例如“ brightred”)

请参阅Eyal Soha (``)的提交 c444f03提交 1751b09提交 4a28eb0(2020 年 1 月 21 日) 。(由Junio C Hamano 合并 -- --87f17d7 提交中,2020 年 2 月 25 日)
gitster

color.c: 支持明亮的 aixterm 颜色

签字人:Eyal Soha

这些颜色是 3 位颜色的明亮变体。

它们分别位于 90-97 和 100-107 范围,而不是前景的 30-37 范围和背景的 40-47 范围。

git config文档现在包括:

接受的基本颜色是normalblackredgreenyellowbluemagenta和。 给出的第一个颜色是前景;第二个是背景。cyanwhite

除了有一个明亮的变体之外的所有基本颜色normal,可以通过在颜色前面加上前缀来指定bright,例如brightred


在 Git 2.35(2022 年第一季度)中,“ default”和“ reset”颜色已添加到我们的调色板中。

请参阅Robert Estelle ( ) 的 commit de65851 ( 2021 年 10 月 26 日)和commit 05f1f41commit aeefc18(2021 年 10 月 25 日(由Junio C Hamano 合并——提交 15209c8中,2021 年 12 月 15 日)rwe
gitster

color: 允许颜色以“reset”为前缀

签字人:罗伯特·埃斯特尔

"reset" 以前被视为一个独立的特殊颜色名称,代表\e[m.
现在,它可以应用于其他颜色属性,允许精确的规范而无需隐式属性继承。

例如,“reset green”现在呈现\e[;32m,这被解释为“reset all; then set foreground to green”。
这意味着背景和其他属性也被重置为默认值。

以前,这是不可能用单一颜色表示的:“reset”可以单独指定,也可以是带有属性的颜色,但是像清除背景颜色这样的事情是不可能的。

有一个单独的更改引入了“默认”颜色名称来帮助实现这一点,但即便如此,上述内容也只能通过显式禁用每个属性来表示:green default no-bold no-dim no-italic no- ul no-blink no-reverse no-strike

config现在在其手册页中包含:

reset属性在应用指定的颜色之前重置所有颜色和属性。例如,reset green将导致绿色前景和没有任何活动属性的默认背景。

于 2015-01-31T21:57:15.093 回答
7

分享我的 git 日志格式:

$ git log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

您还可以在~/.gitconfig中添加别名:

[alias]
    logs  = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

然后您可以使用您在中定义的别名~/.gitconfig

$ git logs
于 2015-01-21T08:42:23.000 回答
5

我使用的是 Ubuntu 18.04,并且能够使用 Xiaofei HAN 的建议。

对于尝试完成此操作的初学者,我通过编辑 .gitconfig 获得了最好的运气。

nano ~/.gitconfig

在现有文本下方粘贴 [alias] 块

CTRL + O(写出)+ CTRL + X(关闭纳米)

完成此操作后,查看可以使用的漂亮颜色

git logs

使用

'git log' 将为您提供没有颜色的视图,

'git logs --oneline' 相同,除了一个会在侧面显示繁荣

谢谢,我希望这对某人有帮助

于 2018-11-17T03:05:17.213 回答
5

这是我在了解使用自定义十六进制颜色值的语法后编写的两个别名,如@VonC 的答案所示。

有四个版本,唯一的区别是 --graph 指令,“f”版本还会显示添加、删除或修改的文件:

[alias]
    lg = log --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    l1 = log --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    lgf = log --name-status --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s" 
    l1f = log --name-status --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"

我使用这个站点来选择我想要的确切颜色,然后从中复制十六进制值:

https://www.colorhexa.com/

对于 Windows,打开位于“C:\Users\YourUserName”文件夹中的 .gitconfig 文件并添加一个别名部分,如上所示。

希望你喜欢他们。

于 2019-02-23T07:50:49.777 回答