我想git diff
将常规的逐行差异与git diff --word-diff
. 逐行差异的问题在于,如果我更改一两个单词并让行基本保持不变,则它们是不必要的——分块太粗糙了。另一方面,如果我更改整行并使用--word-diff
,有时 diff 算法会混淆并吐出令人难以置信的令人困惑的差异,插入和删除大量单词以将一行“变形”为另一行。
有没有办法指定对此git
应该是聪明的,并且只有--word-diff
在这样做确实有意义的情况下(当然是逐行)?
我想git diff
将常规的逐行差异与git diff --word-diff
. 逐行差异的问题在于,如果我更改一两个单词并让行基本保持不变,则它们是不必要的——分块太粗糙了。另一方面,如果我更改整行并使用--word-diff
,有时 diff 算法会混淆并吐出令人难以置信的令人困惑的差异,插入和删除大量单词以将一行“变形”为另一行。
有没有办法指定对此git
应该是聪明的,并且只有--word-diff
在这样做确实有意义的情况下(当然是逐行)?
我为git diff --word-diff
or找到的最聪明的东西是git 附带git diff --color-words
的预定义模式(在or中使用)。它们可能并不完美,但会给出相当好的结果 AFAICT。--word-diff-regex
diff.wordregex
在..gitattributes
_ 进一步指出,
您仍然需要通过 .gitattributes 使用属性机制启用此功能
因此,要激活python
所有*.py
文件的模式,您可以在您的 repo 根目录中发出以下命令:
echo "*.py diff=python" >> .gitattributes
如果您对不同预设模式的实际外观感兴趣,请查看git 的源代码