git diff – montre moi les changements de fin de ligne?

Mon éditeur modifie les fins de ligne de mes fichiers source. Lorsque je git diff , je vois la même ligne deux fois – une fois avec - et une fois avec + – sans différence visible.

Comment puis-je obtenir git diff pour me montrer ce que ce changement était réellement?

Tout d’abord, assurez-vous que vous utilisez la sortie colorée (par exemple, avec git diff --color ) et que vous avez activé la mise en évidence des espaces blancs avec (par exemple)

 git config color.diff.whitespace "red reverse" 

Cela peut ne pas fonctionner dans tous les cas, cependant, git ne semble pas mettre en évidence les espaces blancs pour les lignes supprimées . Pour voir les espaces que vous avez supprimés, utilisez simplement

 git diff -R 

mettre les espaces sur le côté «ajouté» de la comparaison, où il est mis en évidence.

Pour plus de détails, voir les réponses à cette question SO .

Vous pouvez voir la différence de fin de ligne avec la commande suivante.

 git diff | cat -v 

Alors “^ M” est imprimé pour la fin de CRLF (DOS), rien pour la fin de LF (Unix).

Apparemment, git diff fait ce qu’il faut, en imprimant les caractères CR et LF pour la fin du CRLF. Mais comme le CR est consommé par la console, nous ne pouvons pas le voir. En utilisant cat -v, nous pouvons le rendre visible.

Une façon de voir les changements d’espaces blancs est de faire un “mot diff” caractère par caractère avec

 git diff --color --word-diff-regex=. 

Cela met en évidence tous les changements d’espaces partout dans les lignes . Les espaces supprimés sont enveloppés dans [- et -] et ont ajouté des espaces dans {+ et +} .

Alternativement, comme suggéré par Alex

 git diff --color --ws-error-highlight=new,old 

met en évidence tous les changements d’espaces aux extrémités des lignes .

 git diff --ws-error-highlight=new,old 

met en évidence les espaces blancs des lignes modifiées.

Un outil graphique diff va vous montrer le changement mieux – essayez git difftool .

Utilisez meld et définissez les préférences pour afficher les espaces. (Modifier -> Préférences -> Afficher les espaces.)

D’autres outils graphiques ont probablement des options similaires – La réponse de @ Cotton + le commentaire vous indique comment procéder avec vimdiff.