Je suis sous Ubuntu Linux et ai remarqué le ^ M (retour chariot, saut de ligne) pendant git diff
.
CRLF a été sélectionné au bas de la barre d’état:
J'ai simplement cliqué dessus et changé en LF:
Il semble être défini fichier par fichier et devra donc être modifié pour chaque fichier problématique.
Dans mon cas, toutes les fins de ligne avaient été modifiées, donc git diff
était un océan de rouge. J'ai utilisé ce qui suit pour identifier les «vrais» changements:
git diff --ignore-space-at-eol
Cependant, git commit
continuerait d'enterrer les "vrais" changements dans l'historique de validation, alors je:
git stash save
git commit -am "fix line endings"
git stash apply
Maintenant, les fins de ligne ont disparu et les commits peuvent être faits avec un diff précis.
Utilisez-vous l'éditeur de texte Atom sous Windows?
Le retour chariot de Windows est \r\n
alors qu'il est \n
sous Unix.^M
(0xD
ou \r
) est le caractère de retour à la ligne dans Windows.
Je pense que ce fichier a déjà été enregistré sous Unix (et que \n
est déjà présent sur chaque ligne). Atom ajoute donc \r
comme l'exige Windows.
La plupart des solutions que j'ai trouvées en ligne impliquent l'utilisation de sed, vi ou emacs. J'ai trouvé une solution qui fonctionne directement dans Atom (et probablement n'importe quel éditeur de texte), aucune ligne de commande nécessaire.
Sélectionnez tous les retours ou obtenez un sélecteur au début de chaque ligne, puis supprimez-le et appuyez sur Entrée. Cela peut prendre une seconde, mais cela éliminera tous les caractères ^ M.
Cela risquerait de gâcher votre retrait, mais vous pouvez vous auto-mettre en retrait. Cela peut ne pas être efficace si vous avez plusieurs fichiers dont vous avez besoin, mais c'est une solution rapide et sale pour un seul fichier.