我在forked和上游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。
答案 0 :(得分:9)
^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回车。