2016-01-05 1 views
2

Je passe en revue un gros refactor qui a déplacé beaucoup de fichiers et modifié certains fichiers déplacés.git diff n'affiche que les lignes modifiées dans les fichiers renommés

Lorsque j'utilise

git diff --summary -M master feature/x 

Je peux voir de nombreux fichiers qui ont « pourcentage de similarité » au-dessus de 95% et quand je l'utilise git difftool il montre que la plupart des fichiers n'ont pas fait des changements.

Lorsque j'utilise

git diff --unified -M master feature/x 

il affiche tout le contenu de fichiers renommés, comme supprimés puis ajoutés.

Comment puis-je faire git diff me montrer uniquement les lignes modifiées dans les fichiers qu'il a détectés comme des renames?

BTW. Quel est exactement le nombre de pourcentages que git affiche avec --summary?
Pourquoi est-ce 97% lorsque les fichiers se ressemblent?

Répondre

0

Essayez ceci:

git diff --unified -M master feature/x --color-words 

Il faut souligner les mots qui ont été modifiés et non le fichier entier

enter image description here


Vous utilisez la -M qui est utilisé pour afficher fichiers renommés dans le diff.

-M [<n>] --find-renomme [= <n>]

Detect renomme. Si n est spécifié, il s'agit d'un seuil sur l'indice de similarité (c'est-à-dire la quantité d'addition/de suppression par rapport à la taille du fichier). Par exemple, -M90% signifie que Git devrait considérer une suppression/ajout comme un changement de nom si plus de 90% du fichier n'a pas été modifié. Sans le signe %, le nombre doit être lu comme une fraction , précédée d'un point décimal. C'est-à-dire que -M5 devient 0,5, et est ainsi le même que -M50%. De même, -M05 est le même que -M5%. Pour la détection de limite pour renommer exactement, utilisez -M100%. L'indice de similarité par défaut est de 50%.

Pourquoi est-ce 97% lorsque les fichiers se ressemblent? Avez-vous vérifié que votre configuration d'espace blanc ignore les différences d'espace blanc?

Sons comme il y a une différence en ce que (espaces blancs)