当我运行时git diff,每个差异的标题部分以白色文本显示.因为我使用的是浅色背景,所以很难阅读,所以我想改变它.
我发现我可以改变diff输出中的其他颜色,如下所示(in .gitconfig):
[color "diff"]
old = green
new = red
Run Code Online (Sandbox Code Playgroud)
但是我无法弄清楚要把标题颜色放在那里.更好的是,是否存在记录所有默认git config设置的位置?
'diff header'是指这样的行:
diff --git a/README.md b/README.md
index f102026..c5e3428 100644
--- a/README.md
+++ b/README.md
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 24
尝试设置color.diff.meta,例如
git config --global color.diff.meta blue
Run Code Online (Sandbox Code Playgroud)
或者通过手动编辑配置文件
[color "diff"]
meta = blue
Run Code Online (Sandbox Code Playgroud)
您可以查看参考中的各种color.设置以git-config获取更多可能的设置.该color.diff.meta设置列于此处:
color.diff.<slot>
使用自定义颜色进行差异着色.<slot>指定补丁的哪个部分使用指定的颜色,并且是plain(上下文文本),meta(元信息),frag(hunk header),func(hunk header中的函数),old(删除的行),new(添加的行),commit(commit headers)之一),或whitespace(突出显示空白错误).这些变量的值可以指定为color.branch.<slot>.
一个谷歌搜索“git的差异改变颜色”显示这个问题作为最高命中,所以让我加我来到这里寻找的信息,现在我已经想通了,知道别人在这里也将登陆寻找同样的信息.
git diff颜色选项:meta = 标题信息(默认为白色),如下所示:
diff --git a/home/.bashrc b/home/.bashrc
index 148212d..a0d16d8 100644
--- a/home/.bashrc
+++ b/home/.bashrc
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
或者直接编辑 ~/.gitconfig 并添加以下行:
[color "diff"]
meta = blue
old = blue
new = blue
Run Code Online (Sandbox Code Playgroud)
有关更多颜色设置或您可以更改的“插槽”,请查看手册页:
man git config
Run Code Online (Sandbox Code Playgroud)
或在此处在线查看,然后搜索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,即使同一输出行上的前一个内容(例如,log --decorate输出中分支名称列表之前的左括号)设置为使用bold或 某些其他属性绘制。但是,自定义日志格式可能会做更复杂和分层的着色,而否定形式在那里可能很有用。
这是一个更复杂的例子。第一个颜色是前景色,第二个颜色是背景色,后面的词都是属性。有关man详细信息,请参阅上面引用的ual 页面。
运行这些命令:
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"
Run Code Online (Sandbox Code Playgroud)
或将以下内容复制/粘贴到~/.gitconfig文件的底部:
[color "diff"]
meta = blue
old = black red strike
new = black green italic
context = yellow bold # context (ie: unchanged lines) text
Run Code Online (Sandbox Code Playgroud)
这是具有这些设置的git diffn(git diff带有行号)的一些示例输出。请注意已删除行的红色删除线文本。很酷。直到今天我才知道这是可能的(虽然不是因为我喜欢这些颜色——我认为默认是最好的 :))。
另请注意,冒号没有着色或样式化以匹配左右周围的文本。这是有意和设计的行为,用作左侧添加的行号和git diff右侧的原始输出之间的视觉分隔符。
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |