如何使用git diff显示一些看不见的字符差异?

10
当我使用git diff命令时,看到的差异如下:
-    self.conv_2 = nn.Conv2d(C_in, C_out // 2, 1, stride=2, padding=0, bias=False) 
+    self.conv_2 = nn.Conv2d(C_in, C_out // 2, 1, stride=2, padding=0, bias=False) 

我相信这两行没有任何白色退格键差异,然而,我认为这两行完全相同。

我想知道为什么 Git 认为它们不同?

是否有一种方法可以让 git diff 显示特殊字符之间的差异?


7
检查行结尾。检查一般的空白符。如果仍然没有差异,请检查不可见字符。 - user2956272
这两行可能在它们的行尾有所不同。请查看此处 - clamentjohn
@dyukha 谢谢您的评论。我相信它们在结尾处没有白色的退格符。那么如何检查不可见字符? - one
空格不仅可以出现在结尾,例如,在开头中可以是<tab>与空格的区别。我不确定如何检查不可见字符的简单方法。首先,您可以尝试其他差异查看器。您可以编写一个程序,从文件中读取字符串并逐个字符打印它们,并带有一些分隔符。 - user2956272
1个回答

23

--ws-error-highlight 标志 可能会有用。

git diff --ws-error-highlight=all

另外,您可以将 git diff 输出导入管道并使用其 -A 标志显式打印各种非打印字符。

git diff | cat -A

2
第一个选项不会突出显示差异,例如空格变为制表符。第二个选项效果很好。 - Ruslan
1
第二个选项非常有帮助。谢谢 :) - Patrick Rynhart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接