Sto*_*nky 71 git line-endings git-diff
我的编辑器正在更改源文件的行结尾.当我这样做的时候git diff,我会看到两次相同的线 - 一次一次,-一次一次+- 没有明显的区别.
我该如何git diff告诉我实际上这个变化是什么?
Pau*_*ker 58
首先,确保您使用彩色输出(例如,使用git diff --color)并且您已启用空格突出显示(例如)
git config color.diff.whitespace "red reverse"
Run Code Online (Sandbox Code Playgroud)
但是,这可能不适用于所有情况,因为git似乎没有突出显示已删除行的尾随空格.要查看已删除的空格,只需使用即可
git diff -R
Run Code Online (Sandbox Code Playgroud)
将空格放在比较的"添加"一侧,它会突出显示.
有关更多详细信息,请参阅此SO问题的答案.
dro*_*7c2 26
您可以使用以下命令查看行结束差异.
git diff | cat -v
Run Code Online (Sandbox Code Playgroud)
然后打印"^ M"为CRLF(DOS)结束,没有任何LF(Unix)结束.
显然git diff正在做正确的事情,为CRLF结束打印CR和LF字符.但由于CR被控制台占用,我们无法看到它.通过使用cat -v,我们可以使它可见.
ntc*_*tc2 17
查看空格更改的一种方法是使用字符逐个字符"单词差异"
git diff --color --word-diff-regex=.
Run Code Online (Sandbox Code Playgroud)
这凸显了所有空白的变化随处可见线.除去空白被包裹在[-与-]和在添加空格{+和+}.
git diff --color --ws-error-highlight=new,old
Run Code Online (Sandbox Code Playgroud)
突出显示行末端的所有空白更改.