Pyt*_*Nut 5 regex git diff line-by-line word-diff
我想git diff
将常规逐行diff与结合在一起git diff --word-diff
。逐行比较的问题在于,如果我更改一个或两个单词并使该行基本保持原样,则它们是不必要的-分块过于粗糙。另一方面,如果我改变整行并使用--word-diff
,有时diff算法将变得混乱并吐出令人难以置信的diff,插入和删除了大量单词以将一行“变形”为另一行。
是否有一种方法可以指定git
应该对此明智的方法,并且仅--word-diff
在这样做确实有意义时(当然,逐行)?
我已经找到了最聪明的事git diff --word-diff
或者git diff --color-words
是预定义模式来与git的(如在使用--word-diff-regex
或diff.wordregex
)。它们可能并不完美,但 AFAICT 给出了相当好的结果。
(他们都已经预定的字正则表达式太)预定义的差异驱动程序的列表中给出的文档进行.gitattributes
。进一步指出,
您仍然需要通过 .gitattributes 使用属性机制启用此功能
所以要激活python
所有*.py
文件的模式,你可以在你的 repo root 中发出以下命令:
echo "*.py diff=python" >> .gitattributes
Run Code Online (Sandbox Code Playgroud)
如果您对不同的预设模式的实际外观感兴趣,请查看git 的源代码