我想git diff
并将常规的逐行差异与git diff --word-diff
结合起来。逐行差异的问题在于,如果我改变一个或两个单词并且保持线条大部分完整,则它们是不必要的 - 分块太粗糙。另一方面,如果我改变整行并使用--word-diff
,有时diff算法会混淆并吐出令人难以置信的混乱差异,插入和删除大量单词以“将”变换为另一行。
有没有办法指明git
应该对此明智,只有--word-diff
才真正有意义(当然,逐行)?< / p>
答案 0 :(得分:3)
我为git diff --word-diff
或git diff --color-words
找到的最聪明的事情是git 附带的预定义模式(在--word-diff-regex
或{{1}中使用) })。他们给AFAICT带来了很好的结果。
预定义的差异驱动程序列表(它们都具有预定义的单词正则表达式)在docs for .gitattributes
中给出。进一步说明
您仍需要使用属性机制通过.gitattributes
启用此功能
因此,要激活所有diff.wordregex
文件的python
模式,您可以在repo根目录中发出以下命令(在Windows下省略引号):
*.py
如果您对不同预设模式的实际情况感兴趣,请查看git's source code