2017-05-27 2 views
4

J'ai remplacé de manière récursive de nombreux modèles de mots uniques dans ma base de code. Avant de commettre j'ai besoin de vérifier chacun pour les faux remplacements. Cela m'aiderait beaucoup à avoir git add -p utiliser le format de ce que --word-diff utilise avec git diff, où seuls les mots modifiés sont marqués et non la ligne entière.Puis-je faire git add -p afficher les changements comme git diff --word-diff?

Quelqu'un a demandé la même chose ici, mais peut-être qu'il a été implémenté depuis? https://groups.google.com/forum/#!topic/git-users/7uO2OUJGvP0

Répondre

4

Depuis Git 2.9, vous pouvez utiliser la propriété interactive.diffFilter (comme je l'ai mentionné ci-dessous this answer)

Donc, essayez au moins:

git -c interactive.diffFilter="git diff --color-words" add -p 

Ou git diff --word-diff:

git -c interactive.diffFilter="git diff --word-diff" add -p 
+0

L'exemple '--color-words' ne semble pas fonctionner correctement. Il montre chaque morceau pour la mise en scène plusieurs fois et même lorsque certains morceaux ont été rejetés pendant l'interactivité, ils finissent par être mis en scène. – dionyziz

+0

@dionyziz Quelle version de git utilisez-vous? – VonC

+0

J'utilise git version 2.13.3. – dionyziz

0

Ajout diff-highlight à la touche de configuration interactive.diffFilter est l'easi option est (depuis Git 2.9). Le COMAND suivant le tour est joué sur Debian/Ubuntu:

git config interactive.diffFilter "perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight" 

Des choses comme git -c interactive.diffFilter="git diff --color-words" add -p ou git config interactive.diffFilter "git diff --color-words" ne fonctionnent pas correctement: add -p garde toujours ce qui suggère le premier fichier modifié.