我的编辑器正在更改源文件的行结尾。当我执行git diff
时,我会看到同一行两次 - 一次使用-
,一次使用+
- 没有明显差异。
如何让git diff
向我展示这种变化究竟是什么?
答案 0 :(得分:54)
首先,确保您使用彩色输出(例如使用git diff --color
)并且您已启用空白高亮显示(例如)
git config color.diff.whitespace "red reverse"
但是,这可能不适用于所有情况,因为git
似乎没有突出显示已删除行的尾随空格。要查看已删除的空格,只需使用
git diff -R
将空格放在比较的“添加”一侧,然后突出显示。
有关详细信息,请参阅this SO question上的答案。
答案 1 :(得分:20)
您可以使用以下命令查看行结尾差异。
git diff | cat -v
然后为CRLF(DOS)结束打印“^ M”,没有用于LF(Unix)结束。
显然git diff正在做正确的事情,为CRLF结束打印CR和LF字符。 但由于CR被控制台占用,我们无法看到它。通过使用cat -v,我们可以使它可见。
答案 2 :(得分:14)
查看空格更改的一种方法是逐个字符地执行#34;字差异"与
git diff --color --word-diff-regex=.
这会突出显示行中的所有空格更改。移除的空格包含在[-
和-]
中,并在{+
和+}
中添加了空格。
或者,作为suggested by Alex
git diff --color --ws-error-highlight=new,old
突出显示行的末端的所有空格更改。。
答案 3 :(得分:8)
git diff --ws-error-highlight=new,old
突出显示更改行中的空格差异。
答案 4 :(得分:5)
图形差异工具会更好地向您显示更改 - 尝试git difftool
。
使用meld,并设置首选项以显示空格。 (编辑 - >偏好设置 - >显示空白。)
其他图形工具可能有类似的选项 - @ Cotton的回答+评论告诉你如何用vimdiff做这个。