我在fork和上游BitBucket repos之间挖掘一个文件:
$ git diff origin/branchA..upstream/branchB -- some/file/path.xyz
它似乎为几乎每个文件返回相同的差异:
-<U+FEFF>@using Sitecore.Mvc
+@using Sitecore.Mvc^M
^M
的确切含义是什么才出现在第一行之后?我在比较其他文件时也看到了这个问题。我在Windows Server 2008 R2计算机上。 core.autocrlf
将被设置为true
。 .gitattributes设置为text eol=lf
。我的git版本是2.5.1.windows.1。
^M
代表carriage return。这种差异意味着从行的开头删除了一个Unicode BOM并在末尾添加了一个CR。
^
符号代表Control,所以^M
表示Ctrl + M.
为了得到实际的ASCII字符代码,你取基本字符并翻转第6位(即XOR为64)。对于字母,这只意味着减去64.所以例如^A
是字符代码1(因为A
是65)。 ^M
是77 - 64 = 13(因为M
是77),它对应于ASCII中的回车。