Je diffère un fichier entre les dépôts BitBucket fourchus et en amont:
$ git diff Origin/branchA..upstream/branchB -- some/file/path.xyz
Il semble renvoyer la même différence pour presque tous les fichiers:
-<U+FEFF>@using Sitecore.Mvc
+@using Sitecore.Mvc^M
Quelle est la signification exacte de ^M
qui n'apparaît qu'après la première ligne? Je vois ce problème lorsque je compare également d'autres fichiers. Je suis sur une machine Windows Server 2008 R2. core.autocrlf
est défini sur true
. Le .gitattributes est défini sur text eol=lf
. Ma version git est 2.5.1.windows.1.
^M
représente retour chariot . Ce diff signifie que quelque chose a supprimé un nomenclature Unicode du début de la ligne et ajouté un CR à la fin.
Le ^
le symbole signifie Contrôle, donc ^M
veux dire Ctrl+M.
Pour passer de cela au code de caractère ASCII, prenez le caractère de base et retournez le bit 6 (ie XOR avec 64). Pour les lettres, cela signifie soustraire 64. Ainsi, par exemple ^A
est le code de caractère 1 (car A
est 65). ^M
est 77 - 64 = 13 (car M
est 77), ce qui correspond au retour chariot en ASCII.