web-dev-qa-db-fra.com

git diff - montrez-moi les changements de fin de ligne?

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

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

71
Stonky

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 surbrillance des espaces avec (par exemple)

git config color.diff.whitespace "red reverse"

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

git diff -R

pour mettre le blanc sur le côté "ajouté" de la comparaison, où il est mis en évidence.

Pour plus de détails, voir les réponses sur this SO question .

58
Paul Whittaker

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

git diff | cat -v

Ensuite, "^ M" est imprimé pour la fin de CRLF (DOS), rien pour LF (Unix) se terminant.

Apparemment, git diff fait la bonne chose, en imprimant CR et LF caractères pour la fin de CRLF. Mais parce que CR est consommé par la console, nous ne pouvons pas le voir. En utilisant cat -v, nous pouvons faire il visible.

23
droid7c2

Une façon de voir les changements d'espaces est de faire un "Word 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 . L'espace supprimé est enveloppé dans [- et -] et ajout d'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 .

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

met en évidence les espaces blancs diff dans les lignes modifiées.

8
Alex

Un outil graphique de diff vous montrera mieux le changement - essayez git difftool.

Utilisez meld et définissez les préférences pour afficher les espaces blancs. (Édition -> Préférences -> Afficher l'espace blanc.)

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

5
bstpierre