100 votes

git diff - me montrer les changements de fin de ligne ?

Mon éditeur modifie les fins de lignes de mes fichiers sources. Lorsque je fais 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 en quoi consistait réellement ce changement ?

72voto

Paul Whittaker Points 922

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"

Toutefois, cela ne fonctionnera pas dans tous les cas, car git ne semble pas mettre en évidence les espaces blancs de fin de ligne dans le cas de supprimée lignes. Pour voir les espaces blancs que vous avez supprimés, il suffit d'utiliser

git diff -R

pour placer l'espace blanc du côté "ajouté" de la comparaison, où il est mis en évidence.

Pour plus de détails, voir les réponses aux questions suivantes cette question de l'OS .

46voto

Kaz Points 586

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

git diff | cat -v

Ensuite, "^M" est imprimé pour la terminaison CRLF (DOS), rien pour la terminaison LF (Unix).

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

37voto

ntc2 Points 1643

Une façon de voir les changements d'espaces blancs 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 blancs partout en ligne . Les espaces blancs supprimés sont enveloppés dans [- y -] et a ajouté des espaces dans {+ y +} .

Par ailleurs, en tant que suggéré par Alex

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

met en évidence tous les changements d'espacement au niveau du extrémités des lignes .

19voto

Alex Points 3933
git diff --ws-error-highlight=new,old

met en évidence les différences d'espacement dans les lignes modifiées.

5voto

bstpierre Points 12616

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

Utilisation fusionner et paramétrer les préférences pour afficher les espaces. (Edition -> Préférences -> Afficher les espaces).

D'autres outils graphiques ont probablement des options similaires - la réponse+commentaire de @Cotton vous explique comment faire cela avec vimdiff.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X