通过谷歌搜索 "git diff change colors",这个问题成为了首选,所以让我添加一些相关信息。我来到这里寻找答案,现在我已经找到了,知道其他人也会来到这里寻找同样的信息。
git diff
基础颜色选项:
meta
= header information (white by default), that looks like this:
diff --git a/home/.bashrc b/home/.bashrc
index 148212d..a0d16d8 100644
--- a/home/.bashrc
+++ b/home/.bashrc
old
= deleted lines (red by default)
new
= added lines (green by default)
像这样在您的全局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 手册页面:
man git config
或者在这里在线查看,并搜索color.diff.<slot>
。
我可以使用哪些颜色?
请参阅man git config
中的color部分,或者在这里在线查看:https://git-scm.com/docs/git-config#Documentation/git-config.txt-color
变量取颜色的值是一个颜色列表(最多两个,一个用于前景,一个用于背景)和属性(尽可能多),由空格分隔。接受的基本颜色为正常、黑色、红色、绿色、黄色、蓝色、品红色、青色和白色。给出的第一种颜色是前景色,第二种颜色是背景色。除正常之外的所有基本颜色都有一个亮色变体,可以用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将以纯黑色绘制该分支名称,即使同一输出行上的前一个内容(例如log --decorate输出中的分支名称列表之前的左括号)设置为用粗体或其他属性绘制。但是,自定义日志格式可能会进行更复杂和分层着色,并且否定形式可能在那里有用。
更复杂的示例,具有前景色、背景色和文本属性(bold、italic、strike-through):
这里是一个更复杂的示例。第一种颜色是前景色,第二种颜色是背景色,其后的任何单词都是属性。有关详细信息,请参见上述引用的手册页。
运行以下命令:
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"
将以下内容复制/粘贴到您的~/.gitconfig文件的底部:
[color "diff"]
meta = blue
old = black red strike
new = black green italic
context = yellow bold
以下是使用这些设置时 git diffn
(带有行号的git diff
)的示例输出。请注意,删除的行会显示为红色删除线文本。非常酷。我今天才知道这是可能的(虽然我不太喜欢这些颜色 - 我认为默认值最好 :))。
还请注意,左右两边的冒号没有着色或样式化以与周围文本匹配。这是一种故意设计的行为,旨在作为左侧添加的行号和右侧原始git diff
输出之间的可视分隔符。
git -c color.diff.meta=blue diff <file1> <file2>
- Colegit config --global color.diff.old blue
- Jose Luis Blanco