93 votes

Git jolie format couleurs

J'essaie de mettre en place de jolies couleurs de format pour Git. D'après ce que je sais, la version 1.6.0 ne reconnaît que le rouge, le vert et le bleu.

$ git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %Cyellowyellow%Creset %Cblueblue%Creset %Cmagentamagenta%Creset %Ccyancyan%Creset %Cwhitewhite%Creset"
red green %Cyellowyellow%Creset blue %Cmagentamagenta %Ccyancyan %Cwhitewhite

En outre, aucune des couleurs ne fonctionne avec le format de couleur entre parenthèses.

Existe-t-il un moyen de répertorier les couleurs disponibles pour le format Git ?

Malheureusement, nous sommes sur une ancienne machine SCO OpenServer 5.0.7 et la dernière version de Git publiée par SCO Skunkworks était la 1.6.0.3.

158voto

Tuxdude Points 8652

Je ne dispose pas d'une ancienne version de git pour vérifier que les couleurs autres que red , blue y green sont prises en charge.

Cependant, une chose que j'ai remarquée même avec les versions récentes de git (comme la 1.7.10 que j'ai utilisée) est que les couleurs autres que les red , green y blue doivent être entre parenthèses () . Para red , green y blue les parenthèses sont facultatives.

Alors, faites-en l'essai :

git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %C(Yellow)yellow%Creset %Cblueblue%Creset %C(magenta)magenta%Creset %C(cyan)cyan%Creset %C(white)white%Creset"

En liste des couleurs Je sais qu'il y en a au moins deux :

normal
black
red
green
yellow
blue
magenta
cyan
white

Il peut être combiné avec l'un de ces attributs :

bold
dim
ul
blink
reverse
italic
strike
bright  # (Git 2.26, Q1 2020, example: brightred)

Si vous essayez de changer les couleurs en utilisant .gitconfig vous devriez être en mesure de spécifier deux couleurs - Premier plan y fondo et vous pouvez le combiner avec un attribut.

43voto

VonC Points 414372

La version 2.3.0 de Git (février 2015) permettra (merci à Jeff Kink ( peff ) ) :


parse_color : prise en charge des valeurs RVB 24 bits

Certains terminaux (comme XTerm) permettent de spécifier des couleurs RVB 24 bits complètes en utilisant une extension du schéma de couleurs ANSI ordinaire.
Permettons aux utilisateurs de spécifier des couleurs RVB hexagonales, permettant la fonction très importante de décorations de réf. rose vif :

git log --format="%h%C(#ff69b4)%d%C(reset) %s"

  • une meilleure gestion des attributs de couleur :

parse_color : reconnaître " no$foo " pour effacer la $foo atributo

Vous pouvez activer les attributs de texte ANSI comme "reverse" en mettant "reverse" dans votre spécification de couleur. Cependant, vous ne pouvez pas demander à désactiver l'inversion.

Pour les cas courants, cela n'a pas d'importance. Vous pouvez activer la fonction "reverse" au début d'une section colorée, puis effacer tous les attributs avec un "reset".

Cependant, vous pouvez souhaiter activer certains attributs, puis en désactiver d'autres de manière sélective. Par exemple :

git log --format="%C(bold ul yellow)%h%C(noul) %s"

souligne uniquement le dièse, mais sans avoir besoin de spécifier à nouveau le reste des attributs.

Cela peut également aider les programmes tiers, comme contrib/diff-highlight qui veulent activer ou désactiver un attribut sans perturber la coloration existante.

Notez que certaines spécifications d'attributs n'ont probablement aucun sens (par exemple, " bold nobold "). Nous ne prenons pas la peine de signaler de telles constructions, et laissons le terminal s'en charger.


Avec la version 2.26 de Git (Q1 2020), les Les 7 couleurs de base ont appris leurs équivalents plus brillants (par exemple " brightred ") .

Véase commettre c444f03 , commit 1751b09 , commettre 4a28eb0 (21 janvier 2020) par Eyal Soha (``) .
(fusionné par Junio C Hamano -- gitster -- en commit 87f17d7 25 février 2020)

color.c : support des couleurs vives d'aixterm

Signé par : Eyal Soha

Ces couleurs sont les variantes lumineuses des couleurs 3 bits.

Au lieu de se situer dans la fourchette 30-37 pour le premier plan et 40-47 pour l'arrière-plan, ils se situent respectivement dans les fourchettes 90-97 et 100-107.

En git config documentation comprend maintenant :

Les couleurs de base acceptées sont normal , black , red , green , yellow , blue , magenta , cyan y white .
La première couleur donnée est le premier plan ; la seconde est l'arrière-plan.

Toutes les couleurs de base sauf normal ont une variante brillante qui peut être spécifiée en préfixant la couleur avec bright comme brightred .


Avec Git 2.35 (Q1 2022), " default " et " reset "Des couleurs ont été ajoutées à notre palette.

Véase commettre de65851 (26 octobre 2021), et commettre 05f1f41 , commettre aeefc18 (25 Oct 2021) par Robert Estelle ( rwe ) .
(fusionné par Junio C Hamano -- gitster -- en commettre 15209c8 15 décembre 2021)

color : permettre aux couleurs d'être préfixées par "reset".

Signé par : Robert Estelle

"reset" était auparavant traité comme un nom de couleur spécial autonome représentant \e[m .
Désormais, elle peut s'appliquer à d'autres propriétés de couleur, ce qui permet des spécifications exactes sans héritage implicite d'attributs.

Par exemple, "réinitialiser le vert" donne maintenant le résultat suivant \e[;32m ce qui est interprété comme "réinitialiser tout, puis mettre le premier plan en vert".
Cela signifie que l'arrière-plan et les autres attributs sont également réinitialisés à leurs valeurs par défaut.

Auparavant, il était impossible de représenter cela dans une seule couleur : "reset" pouvait être spécifié seul, ou une couleur avec des attributs, mais certaines choses comme effacer une couleur de fond étaient impossibles.

Il y a un changement séparé qui introduit le nom de couleur "par défaut" pour aider à cela, mais même dans ce cas, ce qui précède ne pourrait être représenté qu'en désactivant explicitement chacun des attributs : vert default no-bold no-dim no-italic no-ul no-blink no-reverse no-strike

config inclut désormais dans son page de manuel :

Le pseudo-attribut reset réinitialise toutes les couleurs et tous les attributs avant d'appliquer la coloration spécifiée. Par exemple, reset green entraînera un premier plan vert et un arrière-plan par défaut sans aucun actifs.

9voto

Xiaofei HAN Points 149

Partager le format de mon journal git :

$ git log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

Vous pouvez également ajouter un alias dans ~/.gitconfig :

[alias]
    logs  = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

alors vous pouvez utiliser l'alias comme vous le définissez dans ~/.gitconfig .

$ git logs

5voto

ElMatador Points 143

Voici deux alias que j'ai écrits une fois que j'ai compris la syntaxe de l'utilisation de valeurs de couleurs hexadécimales personnalisées comme indiqué dans la réponse de @VonC.

Il existe quatre versions, la seule différence est la directive --graph et les versions 'f' vous montreront également les fichiers qui ont été ajoutés, supprimés ou modifiés :

[alias]
    lg = log --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    l1 = log --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    lgf = log --name-status --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s" 
    l1f = log --name-status --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"

J'ai utilisé ce site pour choisir les couleurs exactes que je voulais, puis j'ai copié les valeurs hexagonales :

https://www.colorhexa.com/

Pour Windows, ouvrez votre fichier .gitconfig qui se trouve dans votre " C:\Users\YourUserName " et ajoutez une section alias comme illustré ci-dessus.

J'espère que vous les aimerez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X