【发布时间】:2016-12-29 17:36:36
【问题描述】:
不确定这通常是 git 还是 gitlab,但我不喜欢它以更深的颜色突出显示长连续字符串的相当长的子部分,包括仅更改某些字符时未更改的部分在字符串中。
有没有办法配置 gitlab 不这样做?即仅突出显示仅更新的那些字符
例如这就是我在 gitlab 8.10 上得到的
我希望它只突出显示 't' 和 'i' 之间的 '2' 并突出显示 'm' 和 'a' 之间的 'g'
【问题讨论】:
不确定这通常是 git 还是 gitlab,但我不喜欢它以更深的颜色突出显示长连续字符串的相当长的子部分,包括仅更改某些字符时未更改的部分在字符串中。
有没有办法配置 gitlab 不这样做?即仅突出显示仅更新的那些字符
例如这就是我在 gitlab 8.10 上得到的
我希望它只突出显示 't' 和 'i' 之间的 '2' 并突出显示 'm' 和 'a' 之间的 'g'
【问题讨论】:
此功能是在 Gitlab 8.10 中引入的(请参阅“内联差异”部分)。
git 本身使用基于行的差异,因此它将始终在内部存储完整的更改行。然而,git 工具也允许以视觉方式突出只有那些改变的部分,例如git diff --word-diff=color。
编辑
Gitlab 8.10 引入的是更改行中的额外亮点。 IE。完整更改的行将以浅绿色/红色突出显示,而行内的实际更改将以较深的绿色/红色突出显示。 这就是你在图中看到的:
并在 Gitlab 的发行说明中:
显然,Gitlab 会突出显示包含任何更改的行的最大部分。它不会尝试产生最小的更改,可能是由于性能原因。
git --word-diff=color 选项(包括gitk 的Markup words 和Color words 设置)确实产生较少的高光。比较 Gitlab 的 diff:
与gitk 有相同的差异:
但是,即使--word-diff=color 也将(顾名思义)仅逐字突出显示。对于您的示例,它只会突出显示两个单词。这是您在gitk 和Color words 中转载的案例:
对于命令行工具(例如git diff),实际上有一个选项--color-words=. 可以满足您的需求:
但是,据我所知,gitk 和 Gitlab 都不知道这个选项。
【讨论】: