如何在Windows的Git Bash中更改RGB颜色?

60

我正在Windows中使用Git Bash,并且出于我的自定义git log格式的目的,我希望修改终端的准确RGB颜色值,以便可以微调颜色输出。我的git log格式如下,在我的全局.gitconfig文件中:

lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset)%x09%C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset) %C(dim white)%an%C(reset) - %C(white)%s%C(reset)' --branches --remotes --tags

我希望在Git Bash中定义RGB值实际映射到"蓝色"的含义。你有什么想法吗?提供逐步指导将会很好。

我设置了我的.bashrc文件,但是由于某些原因它没有起作用。颜色没有改变 :-(. 这里是一个我运行来查看颜色的脚本:http://pastebin.com/9EsYmGCj,以及结果:http://i.imgur.com/1dJ3o1a.png


24
猜测一下:蓝色太深了吗? - Karoly Horvath
11
@KarolyHorvath 是的,确实是。顺便说一句,我不确定为什么有人要求关闭。我提出的问题完全合理。 - void.pointer
关于 ANSI 转义序列,这可能会有所帮助:http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html - anishsane
9个回答

66

以下方法适用于我在Windows 7上更改Git Bash使用的文本颜色:

  • 单击打开的Git Bash窗口的左上角(窗口框中的Git图标)。
  • 出现一个菜单(与常规DOS cmd窗口相同)。选择最后一项:“属性”,更新于2021年:“选项...”(感谢AlexD!)
  • 转到“颜色”选项卡
  • 选择单选按钮“屏幕文本”
  • 记住当前为“屏幕文本”分配的颜色在小颜色框行中的颜色是什么(它有一个黑色框架)。
  • 然后通过单击相应的颜色框选择要更改的颜色。此颜色现在被分配为“屏幕文本”,这是Git Bash用于普通文本的颜色。但不要担心,这种更改只是临时的并且需要修改颜色的值。
  • 现在更改所选颜色的红/绿/蓝值。在我的情况下,我想使从左边数第五个颜色(更)明亮。让我们称其为“颜色5”。这是Git Bash用于显示带有“git status”的更改文件的颜色。每当Git Bash想要使用“颜色5”时,它将使用新的RGB值。
  • “屏幕文本”现在仍然设置为“颜色5”。因此,单击您记住的原始颜色。

以这种方式进行的更改是永久性的,但仅适用于您用于启动Git Bash的快捷方式。如果您创建一个新的快捷方式,则回到原始颜色。


这是最佳答案,实际上应该标记为答案(如果可能的话),因为它包含了指示而不需要转到另一个网站。 - raddevus
5
请注意,如果您是在管理员模式下打开Git CMD/bash,使用此方法进行的更改将仅为永久性更改。一旦更改生效,就无需再以管理员模式打开它。 - Georges Brisset
1
我已根据点赞数和指令的详细程度将其切换为最佳答案。 - void.pointer
在我修改完想要的颜色后,我点击了原始颜色以将“文本颜色”重置为其原始值,但它复制了修改后的颜色RGB值到原始文本颜色值,真烦!所以我点击了取消,重新开始操作,完成修改后,我点击了确定,然后回来重新选择文本的原始颜色框。终于完成了,谢谢! - ovi
2
在“最新和最伟大的git版本2.33.0.windows.1”(08/2021)中,他们从“属性”更改为...“选项”。 - AlexD
在版本2.39.0上,没有“颜色”选项卡。 :) - Sabuncu

31

如果您正在使用git-bash命令提示符,请检查是否有文件:%USERPROFILE%\.minttyrc
在该文件中,您可以通过以下方式微调控制台颜色的RGB值:

BoldBlack=128,128,128
Red=255,64,40
BoldRed=255,128,64
Green=64,200,64
BoldGreen=64,255,64
Yellow=190,190,0
BoldYellow=255,255,64
Blue=0,128,255
BoldBlue=128,160,255
Magenta=200,64,255
BoldMagenta=255,128,255
Cyan=64,190,190
BoldCyan=128,255,255
White=200,200,200
BoldWhite=255,255,255

4
我也使用了 这个 工具来导出 minttyrc 文件。最佳答案! - KRoy
2
对我来说可以。默认的红色真的很难看到。复制了红色的那一行。然后重新启动了mingw64。 - Thirdy
@user2044859 我没有这个文件,这是Git Bash的默认设置吗? - Luk

19
对于那些来这里寻找实际原问题答案的人,答案是在最后加上以下一行内容:
C:\Program Files\Git\etc\profile.d\git-prompt.sh

LS_COLORS=$LS_COLORS:'di=1;30:' ; export LS_COLORS

您可以从这些颜色中选择。

Black       0;30     Dark Gray     1;30
Blue        0;34     Light Blue    1;34
Green       0;32     Light Green   1;32
Cyan        0;36     Light Cyan    1;36
Red         0;31     Light Red     1;31
Purple      0;35     Light Purple  1;35
Brown       0;33     Yellow        1;33
Light Gray  0;37     White         1;37

在我看来,那里唯一有效的答案是被选中的那个,它描述了如何在Windows终端窗口中更改颜色,而不是在命令提示符本身中更改。 - Krypt

8

Git bash使用默认的Windows控制台颜色,可以在注册表中进行调整。例如,为了增加可读性,可以按照下面所示的方式更改深红色和深品红色为较浅的版本:

Windows Registry Editor Version 5.00
; Default color scheme
; for Windows command prompt.

; Values stored as 00-BB-GG-RR
[HKEY_CURRENT_USER\Console]
; BLACK DGRAY
"ColorTable00"=dword:00000000
"ColorTable08"=dword:00808080
; BLUE LBLUE
"ColorTable01"=dword:00800000
"ColorTable09"=dword:00ff0000
; GREEN LGREEN
"ColorTable02"=dword:00008000
"ColorTable10"=dword:0000ff00
; CYAN LCYAN
"ColorTable03"=dword:00808000
"ColorTable11"=dword:00ffff00
; RED LRED --> To increase readability, use e.g. 000000aa for "ColorTable04"
"ColorTable04"=dword:00000080
"ColorTable12"=dword:000000ff
; MAGENTA LMAGENTA --> To increase readability, use e.g. 00aa00aa for "ColorTable05"
"ColorTable05"=dword:00800080
"ColorTable13"=dword:00ff00ff
; YELLOW LYELLOW
"ColorTable06"=dword:00008080
"ColorTable14"=dword:0000ffff
; LGRAY WHITE
"ColorTable07"=dword:00c0c0c0
"ColorTable15"=dword:00ffffff

6
使用MSYSGIT时,Git Bash在Windows命令提示符中运行。因此,它使用终端定义的颜色。由于Git Bash是始终运行的命令,您可以在命令提示符的“属性”中设置其颜色,而不是“默认值”。
有关更改终端颜色的说明,请参见:https://superuser.com/questions/199764/how-to-change-the-default-color-of-the-command-prompt 注意:我发现命令提示符的颜色选项很难配置,因为它们在编辑时经常会改变/重置。诀窍似乎是在编辑后切换输入框。

3

Windows10 + GitBash: 警告信息示例


以下示例将打印出红色背景和白色文本

打印后,会恢复原来的颜色设置


打印一行消息:

MSG="MY_WARNING_MESSAGE_TEXT" BG="41m" FG="1m"
echo -en "\033[$FG\033[$BG$MSG\033[0m\n"

带硬编码消息的彩色文本块:


BG="41m" FG="1m"
HD_CAT_VAR=$(cat << 'HEREDOC_CAT_VAR_REGION'
+-------------------------------------+
|                                     |
|     HARD_CODED_WARNING_MESSAGE      |
|                                     |
+-------------------------------------+
HEREDOC_CAT_VAR_REGION
)
echo -en "\033[$FG\033[$BG$HD_CAT_VAR\033[0m\n"

带有可变信息的彩色文本块:

VARIABLE_WARNING_MESSAGE="OH_NOOOOOO!"
BG="41m" FG="1m"
HD_CAT_VAR=$(cat << HEREDOC_CAT_VAR_REGION
+-------------------------------------+
|                                     |
+-------------------------------------+
      $VARIABLE_WARNING_MESSAGE        
+-------------------------------------+
|                                     |
+-------------------------------------+
HEREDOC_CAT_VAR_REGION
)
echo -en "\033[$FG\033[$BG$HD_CAT_VAR\033[0m\n"

3

由于这些颜色名称与ANSI转义码相关联(如我在之前的回答中提到的),您可以尝试此问题中描述的方法:

只需将以下内容添加到您的.bashrc文件中

echo -ne "\e]4;4;#007fff\a"  # 4;4 is Dark Blue #005FFF

蓝色中选择一个更易读的RGB值,或从这个调色板中进行选择。


1
我设置了我的.bashrc文件,但某些原因它没有起作用。颜色没有改变 :-(。这是我运行的脚本来查看颜色:http://pastebin.com/9EsYmGCj,结果:http://i.imgur.com/1dJ3o1a.png - void.pointer
1
似乎这对于cygwin可能有效,但对于msysgit(由Git for Windows安装程序提供)则无效。 - void.pointer

3

2017年更新 打开Gitbash,点击左上角的图标,选择“选项”

从选项菜单中,您可以配置透明度、前景色(文本)、背景色和光标颜色。非常直接和简单。


1
很高兴看到有些东西使用配置工具,而不是直接编辑值。 - Andrew Grimm
确实这很好,但对我来说,“存储”按钮是灰色的,我只能假设它是用于保存配置的。因此,我无法通过这种方式创建新的颜色配置文件,只能修改当前终端。所以它有点无用。 - Ben Farmer

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接