git diff
a une option --word-diff
:
--word-diff [= mode < >]
Afficher un mot diff, en utilisant les mots pour délimiter modifiés. Par défaut, les mots sont délimités par des espaces; voir --word-diff-regex ci-dessous. Les valeurs par défaut sont les suivantes:
couleur
Mettez en surbrillance les mots modifiés en utilisant uniquement des couleurs. Implique --color.
plaine
Afficher les mots comme [-removed-] et {+ added +}. N'effectue aucune tentative d'échappement des délimiteurs s'ils apparaissent dans l'entrée, de sorte que la sortie peut être ambiguë.
porcelaine
Utilisez un format de ligne spécial destiné à la consommation de script. Les exécutions ajoutées/supprimées/inchangées sont imprimées dans le format diff unifié habituel, en commençant par un caractère +/-/
au début de la ligne et s'étendant jusqu'à la fin de la ligne . Les nouvelles lignes dans l'entrée sont représentées par un tilde ~ sur une ligne qui lui est propre.
aucun
Désactiver à nouveau le mot diff.
Notez que malgré le nom du premier mode, la couleur est utilisée pour mettre en évidence les parties modifiées dans tous les modes si elle est activée.
Vous pouvez probablement utiliser word-diff=plain
et carrément remplacer [-
, -]
, {+
et +}
avec vos balises span,
ou utiliser le mode porcelain
, qui délivre un format de sortie non ambiguë:
pour chaque ligne de sortie, la premier caractère vous indique quel type de données est représenté sur le reste de la ligne:
~
: c'est la fin d'une ligne (il devrait y avoir aucun texte ni espaces suivant l'un des principaux ~
)
(espace): un morceau inchangé de texte
+
: un bloc de texte qui a été ajouté
-
: un bloc de texte qui a été supprimé
grand idée! Savez-vous comment se débarrasser de '@@ -457,8 +468,9 @@' et avoir le texte entier au lieu de sauter dans le code? –
"grep" les lignes que vous ne voulez pas – LeGEC
pour votre deuxième question: voulez-vous dire par la sortie 'plain', ou la sortie« porcelaine »? – LeGEC