当我有差异时,我怎样才能将它着色以使其看起来很好?我希望它用于命令行,所以请不要使用GUI解决方案.
当我执行a git diff
或a时git log -p
,如何获取与输出内联的源文件的行号?
我试着man git-diff | grep "line numbers"
查一下,我试着谷歌搜索,但没有得到任何快速.
因为git
是为源代码设计的,所以它的默认diff
算法将行视为最小不可分割单位.
我正在尝试编辑一些包含在第80列自动换行的降价文件.添加一个句子可以使段落的其余部分标记为已更改.
有没有办法让Git使用更适合文本的diff算法?我需要一个将单词或句子视为不可分割的单位而不是线条的单位?
在另一篇文章中我发现非常整洁
git diff --color-words='[^[:space:]]|([[:alnum:]]|UTF_8_GUARD)+'
Run Code Online (Sandbox Code Playgroud)
它可以很好git-diff
地将输出压缩到必要的同时保持清晰(特别是在添加--word-diff=plain
额外的[-
/ -]
和{+
/ +}
周围的删除/添加时).虽然这确实包括空格更改,但输出不会以任何明显的方式突出显示它们,例如,当更改一行python代码的缩进(这是一个严重的更改)将显示为具有较长缩进的行(在之前或之后) ),但没有任何突出显示.
如何空白改变正确地在突出显示,也许是一些Unicode字符,如更换空白·
,?
和?
,或一些更接近git diff --word-diff-regex=.
的{+ +}
等,但与更聪明的字分离?
git diff
针对代码的输出进行了优化,该代码往往每行仅一个语句,而文本(如果像我这样的作者太懒了而无法使用换行符)会导致diff输出,这很难阅读,并且更多地是“ Wally在哪里?” 搜索比读取差异输出
而在GitLab或GitHub的Web前端上突出显示则立即显示出差异
我知道我正在比较HTML和纯文本(苹果和橘子),但是应该可以git diff
通过使用不同的颜色或在更改周围添加标记字符来改善输出(JUnit []
在插入周围使用,这对阅读,但我的意思是一个例子),这将是我第一次期望git中某些可用的东西实际上不是。
git ×4
diff ×2
git-diff ×2
colors ×1
command-line ×1
highlight ×1
highlighting ×1
line-numbers ×1
unix ×1
vim ×1
vimdiff ×1
whitespace ×1