Comment coloriser la sortie git-status?

93

Je veux coloriser la sortie git-status afin que:

untracked files = magenta
new files = green
modified files = blue
deleted files = red

Je vois plutôt des fichiers intermédiaires en vert et des fichiers non organisés en bleu: capture d'écran de git-status

Mon .gitconfig est configuré avec les éléments suivants en fonction de certaines recherches:

[color]
status = auto

[color "status"]
added = green
changed = blue
untracked = magenta
deleted = red
Andy
la source
2
Remarque: git 2.9.1 prend en charge les attributs italic et strike. Voir ma modification ci-dessous.
VonC

Réponses:

131

De git config doc :

color.status.<slot>

Utilisez une couleur personnalisée pour la colorisation de l'état. <slot>fait partie de:

  • header (le texte d'en-tête du message d'état),
  • addedou updated(fichiers ajoutés mais non validés),
  • changed (fichiers modifiés mais non ajoutés dans l'index),
  • untracked (fichiers qui ne sont pas suivis par git),
  • branch (la branche actuelle),
  • nobranch (la couleur de l'avertissement aucune branche est affichée, par défaut en rouge),
  • localBranchou remoteBranch(les noms des succursales locales et distantes, respectivement, lorsque les informations de succursale et de suivi sont affichées au format court de statut),
  • unmerged (fichiers qui ont des modifications non fusionnées).

Les valeurs de ces variables peuvent être spécifiées comme dans color.branch.<slot>.

Donc cela fonctionnera:

git config color.status.changed blue
git config color.status.untracked magenta

Toutefois:

new files = green
deleted files = red

Ce n'est pas possible: vous devez choisir une couleur:

  • s'ils sont ajoutés à l'index, ils choisiront la couleur pour color.status.added.
  • s'ils ne sont pas ajoutés à l'index, ils choisiront la couleur ou color.status.modified.

Bien sûr, comme commenté par elboletaire :

N'oubliez pas d'activer la sortie de coloration si elle n'a pas été activée précédemment:

git config --global color.ui true

Shaun Luttin ajoute:

La commande peut également prendre plusieurs paramètres entre guillemets. Cela inclut deux couleurs (arrière-plan de premier plan) de cette liste:

normal, noir, rouge, vert, jaune, bleu, magenta, cyan et blanc;

et il comprend également un attribut (style) de cette liste:

gras, faible, ul, clignotant et inversé.

Donc cela fonctionnera:

git config color.status.changed "blue normal bold"
git config color.status.header "white normal dim"

Remarque: avec git 2.9.1 (juillet 2016), le schéma de coloration de sortie a appris deux nouveaux attributs, italique etla grève, en plus des caractères gras, inversés, etc.

Voir commit 9dc3515 , commit 54590a0 , commit 5621068 , commit df8e472 , commit ae989a6 , commit adb3356 , commit 0111681 (23 juin 2016) par Jeff King ( peff) .
(Fusionné par Junio ​​C Hamano - gitster- in commit 3c5de5c , 11 juillet 2016)

Il permet également " no-" d'annuler les attributs

Utiliser " no-bold" plutôt que " nobold" est plus facile à lire et plus naturel à taper (pour moi, de toute façon, même si c'est moi qui ai introduit "nobold" en premier lieu). Il est facile d'autoriser les deux.

VonC
la source
30
N'oubliez pas d'activer la sortie de coloration si elle n'a pas été activée précédemment:git config --global color.ui true
elboletaire
1
@elboletaire bon point. Je l'ai inclus dans la réponse pour plus de visibilité.
VonC
1
Merci, color.ui est la réponse.
Robeezy