web-dev-qa-db-ja.com

git diffでの^ Mの意味は何ですか

分岐したファイルとアップストリームのBitBucketリポジトリの間でファイルを比較しています:

$ 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.autocrlftrueに設定されます。 .gitattributesはtext eol=lfに設定されています。私のgitバージョンは2.5.1.windows.1です。

20
Dennis Subachev

^Mキャリッジリターン を表します。この差分は、何かが nicode BOM を行の先頭から削除し、末尾にCRを追加したことを意味します。

^記号はコントロールを表すので、^M 手段 Ctrl+M

これを実際のASCII文字コードに変換するには、基本文字を取り、ビット6を反転します(XOR with 64))。文字の場合、 64を減算することを意味します。たとえば、^Aは文字コード1です(Aは65であるため)。 ^Mは77-64 = 13(Mは77であるため)で、ASCIIのキャリッジリターンに対応します。

17
melpomene