Ma question est assez simple, mais je n'ai pas eu de chance de trouver une réponse.
Je voudrais supprimer les principaux symboles plus/moins de chaque ligne dans git diff
. Avant de vous demander pourquoi je souhaite le faire, permettez-moi d'exposer mes raisons:
git
)Existe-t-il une option de configuration pour ce faire? Sinon, comment puis-je le faire d'une manière qui me permette toujours de parcourir mon style diff less
?
Toute idée serait grandement apprécié.
Une option consiste à utiliser sed
pour supprimer le caractère indésirable de diff, tout en préservant la couleur:
git diff --color | sed -r "s/^([^-+ ]*)[-+ ]/\\1/" | less -r
(Notez que vous devez également supprimer l'espace de tête, car il est émis par diff.)
La façon la plus simple que j'ai vue est la suivante. Beaucoup facile à retenir (Le format du texte change. Vous devez donc connaître le changement de code)
git diff - mots-couleurs
Voici un moyen de le faire par défaut
Si vous utilisez Linux, ajoutez la commande suivante à votre fichier ~/.bashrc
Ensuite, vous pouvez utiliser gitdiff sans espace comme autre commande.
alias gitdiff='git diff --color-words'
Mise à jour:
Pour définir l'alias directement via git config (sans l'aide de ~/.bashrc)
https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
Merci @dylankb pour cela.
Exemple: Si vous entrez la commande git config --global alias.ci commit
;
alors vous pouvez utiliser git ci
pour le reste de votre vie pour vous engager !!
Happy Gitting :)
Pour les utilisateurs de Mac, vous devrez utiliser la commande ci-dessous:
git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r
caleb531 l'a fourni dans la réponse acceptée mais il y avait une petite faute de frappe.
Ensuite, si vous souhaitez ajouter ceci à un alias, vous pouvez procéder comme suit:
alias gitdiff='git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r'
Si je peux répondre à ma propre question, j'ai finalement décidé d'utiliser un outil appelé diff-so-fancy . Il supprime non seulement le +/- de mes différences, mais il rationalise également les en-têtes de fichier et met en évidence les changements au sein de chaque ligne.