我如何在Git之外获得类似于
最接近的方法是使用
git diff --color-words
的输出?最接近的方法是使用
wdiff -t
,但它会用下划线/反转而不是绿色/红色颜色,并且不允许指定我的空格正则表达式。git diff --color-words --no-index old.txt new.txt
git diff --color-words file1 file2
可以在git仓库之外使用。
git diff --color-words --no-index <file1> <file2>
可以工作,但正确的方法是使用 wdiff,该工具专门用于比较文本差异(http://www.gnu.org/software/wdiff/)。 - Manu Manjunathgit diff
就是为了这个目的而设计的。wdiff
只是一个hack。有时间可以阅读一下你提供的链接。 - Zenexergit diff
非常出色,但上面提到的wdiff
页面并没有说它是一个hack。根据链接在该页面上链接的自己的文档,wdiff“已经相当成熟”:https://www.gnu.org/software/wdiff/manual/wdiff.html - Joshua GoldbergGit版本1.9.1:
git diff --word-diff=color 文件A 文件B
git diff --color-words
不起作用(没有输出)git diff --no-index
不接受 --color-words
或 --color
参数可以使用 wdiff,配置为使用颜色,而不是下划线:
wdiff -n \
-w $'\033[30;31m' -x $'\033[0m' \
-y $'\033[30;32m' -z $'\033[0m' \
… | less -R
来源:https://www.gnu.org/software/wdiff/manual/html_node/wdiff-Examples.html(修改为使用前景色而不是背景色)
希望能有所帮助。
git --no-index --color-words
失败了?我以前用过它(虽然是早期的 Git 版本)。 - Vi.你可以使用 git diff --color=always --color-words
命令,这将在输出中给你颜色转义代码。但你需要一些 shell 来解释颜色代码...
--color-words=always
而不仅仅是--color-words
时,会有一些东西被遗漏。 - Vi.
git diff --no-index --color-words
。 - PhML--no-index
和--color-words
的顺序并不重要...(实际上我现在找不到没有使用--no-index
的情况下失败的案例)。 - Vi.alias diff="git diff --no-index"
? - Penghe Geng