5

我想git diff将常规的逐行差异与git diff --word-diff. 逐行差异的问题在于,如果我更改一两个单词并让行基本保持不变,则它们是不必要的——分块太粗糙了。另一方面,如果我更改整行并使用--word-diff,有时 diff 算法会混淆并吐出令人难以置信的令人困惑的差异,插入和删除大量单词以将一行“变形”为另一行。

有没有办法指定对此git应该是聪明的,并且只有--word-diff在这样做确实有意义的情况下(当然是逐行)?

4

1 回答 1

5

我为git diff --word-diffor找到的最聪明的东西是git 附带git diff --color-words的预定义模式(在or中使用)。它们可能并不完美,但会给出相当好的结果 AFAICT。--word-diff-regexdiff.wordregex

..gitattributes _ 进一步指出,

您仍然需要通过 .gitattributes 使用属性机制启用此功能

因此,要激活python所有*.py文件的模式,您可以在您的 repo 根目录中发出以下命令:

echo "*.py diff=python" >> .gitattributes

如果您对不同预设模式的实际外观感兴趣,请查看git 的源代码

于 2015-09-06T20:03:44.947 回答