分岐したファイルとアップストリームの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.autocrlf
はtrue
に設定されます。 .gitattributesはtext eol=lf
に設定されています。私のgitバージョンは2.5.1.windows.1です。
^M
は キャリッジリターン を表します。この差分は、何かが nicode BOM を行の先頭から削除し、末尾にCRを追加したことを意味します。
^
記号はコントロールを表すので、^M
手段 Ctrl+M。
これを実際のASCII文字コードに変換するには、基本文字を取り、ビット6を反転します(XOR with 64))。文字の場合、 64を減算することを意味します。たとえば、^A
は文字コード1です(A
は65であるため)。 ^M
は77-64 = 13(M
は77であるため)で、ASCIIのキャリッジリターンに対応します。