【问题标题】:how to use git diff show some invisible characters differences?如何使用 git diff 显示一些不可见的字符差异?
【发布时间】:2019-09-21 03:54:15
【问题描述】:

当我使用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显示特殊字符的区别?

【问题讨论】:

  • 检查行尾。一般检查空格。如果仍然没有差异,请检查不可见字符。
  • 这两行的行尾可能不同。看看here
  • @dyukha 感谢 cmets。我敢肯定他们在结尾没有白色退格键。那么如何检查不可见字符呢?
  • 空格不能只在结尾;例如,它可以是 vs 开头的空格。我不确定检查不可见字符的简单方法是什么。首先,您可以尝试其他一些差异查看器。您可以自己编写程序,从文件中读取字符串并打印它们,一个字符一个字符,带有一些分隔符。

标签: git


【解决方案1】:

--ws-error-highlight flag 可能有用。

git diff --ws-error-highlight=all

或者,您可以将git diff 输出通过管道传输到cat,并使用其-A 标志显式打印各种非打印字符。

git diff | cat -A

【讨论】:

  • 第一个选项不会突出显示差异,例如将空格更改为制表符。第二个效果很好。
猜你喜欢
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 2011-05-24
  • 2016-06-28
相关资源
最近更新 更多