我在 fork 和上游 Bitbucket 存储库之间比较文件:
$ git diff origin/branchA..upstream/branchB -- 一些/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 位(即与 64 进行异或运算)。对于字母,这仅意味着减去 64。例如^A
是字符代码 1(因为 A
是 65)。 ^M
是77 - 64 = 13(因为M
是77),对应ASCII中的回车。
关于git - 'git diff' 中的 ^M 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38621307/