首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何改善git的差异突出?

如何改善git的差异突出?
EN

Stack Overflow用户
提问于 2018-03-14 13:06:43
回答 4查看 7.7K关注 0票数 36

git diff的输出是针对代码进行优化的,代码倾向于每行一条语句,而文本(如果像我这样的作者懒得使用换行符)会导致差异输出,这很难阅读,更像是“Wally在哪里?”搜索而不是读取diff输出

而在GitLab或GitHub的web前端所做的突出显示则立即显示了不同之处

我知道我在比较HTML和纯文本(苹果和桔子),但是应该可以通过使用不同的颜色或在更改前后添加标记字符来改进git diff输出(JUnit在插入时使用[],这并不好读,但这是我所指的一个例子),而且这将是我第一次希望在git中有一些实际上不是很好的东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-03-14 15:15:22

您可以使用--word-diff[=<mode>]选项来更容易地查看一行中哪些单词发生了变化。这在手册页中描述为

显示一个word diff,使用<mode>分隔已更改的单词。默认情况下,单词由空格分隔;参见下面的--word-diff-regex<mode>默认为平原,并且必须是下列之一:

  • color -只使用颜色高亮显示更改的单词。暗示着--color
  • plain -将单词显示为[-removed-]{+added+}.,如果它们出现在输入中,则不会试图转义分隔符,因此输出可能是不明确的。
  • porcelain --使用一种特殊的基于行的格式,用于脚本的使用.添加/删除/未更改的运行以通常统一的diff格式打印,从行开头的+/-/` `字符开始,延伸到行尾。输入中的新行由自己的行上的倾斜~表示。
  • none -再次禁用word diff。

请注意,尽管第一种模式的名称,颜色是用来高亮显示所有模式中更改的部分,如果启用的话。

票数 16
EN

Stack Overflow用户

发布于 2019-04-28 14:28:18

另一个答案中提到的word-diff并不完全是gitlab/github所做的。为了获得同样的效果,您可以使用diff-highlight脚本,即用git分发

  1. 首先查找到diff-highlight脚本的路径。它在不同的系统中有所不同,而且通常不在$PATH中。您可以在包管理器中找到它,例如:
代码语言:javascript
代码运行次数:0
运行
复制
1. Fedora: `rpm -ql git | grep diff-highlight`
2. Debian/Ubuntu/Mint: `dpkg -L git | grep diff-highlight`
3. Archlinux: `pacman -Ql git | grep diff-highlight`

  1. 编辑~/.gitconfig,并向[pager]部分添加以下页面# diff (替代路径)-突出显示由git提供的脚本,该脚本逐字显示diff日志= perl /usr/share/git/diff-高亮/diff-突出显示较少的显示= perl /usr/share/git/diff-突出显示减少diff= perl /usr/share/git/diff-高亮/diff-突出显示更少。 我在这里使用perl,而不是直接调用脚本,因为某些发行版似乎没有在脚本上设置可执行位。海事组织,这是一个包裹错误,应该报告。无论如何,这个答案应该是有效的,而忽略了这一点。

现在,logdiffshow命令应该逐字显示不同的内容.截图:

票数 42
EN

Stack Overflow用户

发布于 2019-09-29 19:19:20

同样值得一提的是diffr。它是用Rust编写的,使用了Myers最长的公共子序列算法。与git的diff-highlight相比,它提供了更好的结果,参见:

git的diff-highlight

diffr

安装后,使用它类似于diff-highlight,即编辑~/..gitconfig,并添加到[pager]部分如下:

代码语言:javascript
代码运行次数:0
运行
复制
[pager]
    log  = diffr | less
    show = diffr | less
    diff = diffr | less
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49278577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档