当我运行git diff
时,每个差异的标题部分都以白色文字显示。由于我使用浅色背景,因此很难阅读,所以我想改变它。
我发现我可以改变diff输出中的其他颜色(在.gitconfig
中):
[color "diff"]
old = green
new = red
但我无法弄清楚要用于标题颜色的内容。更好的是,是否存在记录所有默认git config
设置的位置?
由' diff header'我的意思是这样的行:
diff --git a/README.md b/README.md
index f102026..c5e3428 100644
--- a/README.md
+++ b/README.md
答案 0 :(得分:18)
尝试设置color.diff.meta
,例如
git config --global color.diff.meta blue
或手动编辑配置文件
[color "diff"]
meta = blue
您可以查看各种color.
设置in the git-config
reference以了解更多可能的设置。此处列出color.diff.meta
设置:
color.diff.<slot>
使用自定义颜色进行差异着色。<slot>
指定修补程序的哪个部分使用指定的颜色,并且是plain
(上下文文本),meta
(元信息),frag
(hunk header)之一,func
(hunk标头中的函数),old
(已删除的行),new
(添加的行),commit
(提交标题)或whitespace
(突出显示)空白错误)。这些变量的值可以在color.branch.<slot>
中指定。
答案 1 :(得分:3)
Google search for "git diff change colors"将该问题显示为热门问题,因此,现在我已经弄清楚了,知道其他人也会在这里寻找相同的信息,因此让我添加我来这里寻找的信息。
git diff
颜色选项: meta
=标头信息(默认为白色),如下所示:
diff --git a/home/.bashrc b/home/.bashrc
index 148212d..a0d16d8 100644
--- a/home/.bashrc
+++ b/home/.bashrc
old
=删除的行(默认为红色)
new
=添加的行(默认为绿色)
在全局gitconfig文件中的〜/ .gitconfig 中更改这些颜色,如下所示:
git config --global color.diff.meta blue
git config --global color.diff.old blue
git config --global color.diff.new blue
或直接编辑〜/ .gitconfig并添加以下行:
[color "diff"]
meta = blue
old = blue
new = blue
有关更多颜色设置或可以更改的“插槽”,请查看手册页:
man git config
或查看online here,然后搜索color.diff.<slot>
。
请参见man git config
中的颜色部分,或在线此处:https://git-scm.com/docs/git-config#Documentation/git-config.txt-color
颜色
带颜色的变量的值是一列颜色(最多两个,一个用于前景,一个用于背景)和属性(任意数量),用空格隔开。
可接受的基本颜色为
normal
,black
,red
,green
,yellow
,blue
,magenta
,cyan
和white
。给定的第一个颜色是前景色;第二个是背景。除了normal
以外的所有基本颜色都有一个明亮的变体,可以通过在颜色前面加上bright
来指定,例如brightred
。颜色也可以指定为0到255之间的数字;它们使用ANSI 256色模式(但请注意,并非所有终端都可以支持此模式)。如果您的终端支持,也可以将24位RGB值指定为十六进制,例如
#ff0ab3
。可接受的属性为
bold
,dim
,ul
,blink
,reverse
,italic
和strike
(用于划掉的字母或“删除线”字母)。任何属性相对于颜色的位置(之前,之后或之间)都无关紧要。可以通过在特定属性的前面加上no
或no-
(例如noreverse
,no-ul
等)来关闭特定属性。空的颜色字符串完全不会产生颜色效果。这样可以避免在不完全禁用颜色的情况下为特定元素着色。
对于git的预定义颜色插槽,应在彩色输出中每个项目的开头重置属性。因此,将
color.decorate.branch
设置为black
会将分支名称绘制为普通的black
,即使同一输出行上的前一个内容(例如,在{{ 1}}输出)设置为使用log --decorate
或其他一些属性进行绘制。但是,自定义日志格式可能会进行更复杂和分层的着色,否定形式可能会有用。
这是一个更复杂的示例。第一种颜色是前景颜色,第二种颜色是背景颜色,其后的任何单词都是属性。有关详细信息,请参见上面引用的bold
手册页。
运行以下命令:
man
将以下内容复制/粘贴到〜/ .gitconfig 文件的底部:
git config --global color.diff.meta "blue"
git config --global color.diff.old "black red strike"
git config --global color.diff.new "black green italic"
git config --global color.diff.context "yellow bold"
以下是使用这些设置的git diffn
(git diff
with line numbers)的一些示例输出。注意已删除行的红色删除线文本。很酷我直到今天才知道这是不可能的(虽然我不是喜欢这些颜色-我认为默认颜色是最好的:))。
还请注意,冒号没有进行着色或样式化以匹配左右两侧的周围文本。这是有意行为,它是设计好的行为,可以用作在左侧添加的行号和在右侧添加的原始[color "diff"]
meta = blue
old = black red strike
new = black green italic
context = yellow bold # context (ie: unchanged lines) text
输出之间的可视分隔符。
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您在 Windows 环境中尝试此操作,您可能会在“C:\Users\username\.gitconfig”中找到全局 .gitconfig。
git config --global
有效,但如果你像我一样多次运行它,你最终会在 .gitconfig 中得到重复的条目。那么您可能只想手动编辑它。