2017-05-22 32 views
0

大多数情况下,git diff会产生合理的输出。但是,当对一段文本进行大的改动时,例如,当替换整个函数体时,git diff会尝试匹配只包含大括号的空行和行。这会导致不可读的差异,因为旧代码和新代码以不合理的方式交错。如何让git-diff无视单行匹配?

我想让diff不要尝试匹配单行,如果他们被更改的行包围。如何做呢?

+0

没有一个Git的diff选择可以做到这一点。您可以使用“耐心”或“直方图”算法避免在“噪音”线上*匹配*,这可能会有所帮助,但一旦匹配位置被选中,Git仍可能会以您不喜欢的形式向您显示输出。吸血鬼的回答(或任何其他外部差异方法)可能是唯一的选择。 – torek

+0

@torek你知道一个可以做到这一点的外部差异吗? – Swidge

+0

不可以。您可以编写后期处理过滤器,使用找到的某个现有差异的匹配(和非匹配),在这种情况下,您可能需要耐心或直方图样式差异。您可能还想阅读[这本不太完成的书]的第3章(http://web.torek.net/torek/tmp/book.pdf)。 – torek

回答

0

改为使用git difftool,并使用diff工具以您喜欢的方式呈现diff。