En ce qui concerne le formatage du code, je suis un peu puriste :). Je supprime très souvent les espaces blancs inutiles (lignes avec seulement ws, ws à la fin des lignes, etc.). J'ai même configuré vim pour afficher ce genre de lignes colorées en rouge.
Mon problème est qu'en utilisant git-diff, je vois souvent quelque chose comme ceci:
- else{
+ else{
Même si j'ai git-diff coloré, je ne vois pas la différence (dans cette situation particulière, j'ai supprimé 1 ws à la fin de la ligne). Existe-t-il un moyen de dire à git-diff de montrer que ws est coloré en rouge? (par exemple ceux qui correspondent à / \ s + $ / regexp).
git
colors
diff
whitespace
Radarek
la source
la source
Réponses:
Vous devrez peut-être définir le paramètre de configuration color.diff.whitespace, par exemple avec:
(Je suppose que vous avez déjà
color.diff
oucolor.ui
mis àauto
puisque vous dites que vous voyez des taches de couleur degit diff
toute façon.)Si vous souhaitez affiner le type d'erreurs d'espaces qui sont surlignées en rouge, vous pouvez ensuite le modifier
core.whitespace
, mais ilblank-at-eol
est activé par défaut, vous n'aurez donc probablement pas besoin de le changer pour l'exemple que vous mentionnez.Une source possible de confusion est que dans la sortie de
git diff
, les erreurs d'espace blanc ne sont mises en évidence que dans les lignes qui sont introduites, pas dans celles qui sont supprimées. ( Mise à jour: comme le souligne Paul Whittaker dans sa réponse , que vous devriez voter à la hausse :), vous pouvez les voir en inversant le sens de la différence avecgit diff -R
.)Vous pouvez trouver plus de documentation sur ces options de configuration dans la page de manuel git config
Si vous ne souhaitez pas utiliser
-R
kludge, vous pouvez utiliser l' option WhiteSpace Error Highlight de la page de manuel de diff .git diff --ws-error-highlight=new,old <file>
ou
git diff --ws-error-highlight=all <file>
Je ne connais pas de moyen de l'activer de manière permanente et de le stocker dans la configuration en dehors de l'utilisation d'un alias:
git config alias.df 'diff --ws-error-highlight=all'
Vous pouvez maintenant utiliser:
git df <file>
Pour voir les changements en rouge.
Notez qu'avec Git 2.11 (Q4 2016) , cet alias peut être remplacé par:
Voir doc sur
git diff
et surgit config
.la source
git diff -R
git config diff.wsErrorHighlight all
. Utilisezgit config --global [...]
pour rendre les modifications globales (c'est-à-dire affectant tous les dépôts).Utilisez
git diff -R
pour transformer les lignes supprimées en lignes ajoutées. Ensuite, les espaces blancs de fin seront mis en évidence.(Cela suppose que vous avez déjà activé la mise en évidence des espaces blancs, conformément aux paramètres de couleur de la réponse de Mark. Le crédit de cette méthode va à l'article de Junio à http://git.661346.n2.nabble.com/Highlighting-whitespace-on-removal- avec-git-diff-td5653205.html .)
Par exemple, lors de la conversion d'un fichier des fins de ligne DOS vers Unix,
git diff -R
me montre clairement les^M
caractères (dis) apparaissant à la fin des lignes. Sans-R
(et aussi sans-w
etc.), cela montre que le fichier entier a changé, mais ne montre pas comment.la source
git diff | cat -A | less -S
si vous êtes désespéré, mais en plus des retours chariot, lecat
affichera également toute couleur mettant en évidence les codes d'échappement littéralement.cat -A
n'est pas portable. Sur BSD cat, une telle option n'existe pas. Veuillez utiliser à lacat -vet
place.Utilisez
git diff --color | less -R
. Le-R
rend les codes de contrôle de couleur conviviaux.Ensuite, vous pouvez utiliser
less
la recherche par expression régulière, par exemplela source
vim
, d'ailleurs.less -R
juste il est plus facile pour moi de tuyaux àls --color
traversless
.Ma version de
git diff
semble déjà le faire - j'ai git 1.7.4.1 et j'ai définicolor.ui = auto
.la source