Lorsque vous lancez git log --decorate --pretty=oneline
la sortie aura des entrées comme (HEAD, refs/published/master, master)
avec coloration.
J’ai aussi ce qui suit dans mon gitconfig:
[color "branch"] current = yellow reverse local = yellow remote = green
Comment reproduisez-vous ces couleurs lorsque vous effectuez un format personnalisé comme celui-ci?
git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"
À partir de git 1.8.3 (24 mai 2013), vous pouvez utiliser %C(auto)
pour décorer %d
dans la chaîne de format de git log
.
A partir des notes de publication :
* "git log --format" specifier learned %C(auto) token that tells Git to use color when interpolating %d (decoration), %h (short commit object name), etc. for terminal output.)
Le git log --decorate
mettra par défaut:
et peut être modifié par color.decorate
config.
Mais git log --format
pas de moyen pour afficher spécifiquement HEAD
ou les télécommandes ou la twig: les trois sont affichés via %d
, avec une couleur possible.
Mise à jour de mai 2013, comme mentionné ci-dessous par Elad Shahar (voté), le git 1.8.3 offre une option supplémentaire:
git log –format
arbore désormais un jeton%C(auto)
qui indique à Git d’utiliser la couleur lors de la résolution de%d
(décoration),%h
(nom d’object abrégé), etc. pour la sortie du terminal.
Cet article sur le blog Atlassian git rebase
que cette fonctionnalité fait partie de plusieurs autres fonctions axées sur le format ( git rebase
, git count-objects
) et les couleurs ( git branch -vv
).
Cela vient en plus de la précédente auto,reset
de 1.8.2 , qui désactive automatiquement les couleurs lorsque la sortie n’est pas utilisée pour un terminal1
%C(auto,blue)Hello%C(auto,reset)
Remarque: git 2.4+ (Q2 2015) fera un meilleur travail de réinitialisation de la couleur autour des noms de twig.
Voir commit 5ee8758 par Junio C Hamano ( gitster
) :
log --decorate
: ne fuit pas la couleur “commit” dans l’élément suivantDans ”
git log --decorate
“, vousgit log --decorate
l’en-tête de validation comme ceci:
commit ... (HEAD, jc/decorate-leaky-separator-color)
où ”
commit ... (
” est peint danscolor.diff.commit
, ”HEAD
” danscolor.decorate.head
, ”,
” danscolor.diff.commit
, le nom de la twig danscolor.decorate.branch
, puis fermeture ”)
“danscolor.diff.commit
.Si vous voulez peindre le nom HEAD et la twig locale de la même couleur que le corps du texte (peut-être parce que le cyan et le vert sont trop pâles sur un terminal noir sur blanc pour être lisibles), vous ne voudriez pas avoir à dire
[color "decorate"] head = black branch = black
car vous ne pourriez pas réutiliser la même configuration sur un terminal blanc sur noir. Vous attendez naïvement
[color "decorate"] head = normal branch = normal
pour travailler, mais malheureusement, ce n’est pas le cas.
Il peint la chaîne ”HEAD
” et le nom de la twig dans la même couleur que la parenthèse ou la virgule d’ouverture entre les éléments de décoration.
En effet, le code oublie de réinitialiser la couleur après avoir imprimé le “préfixe” dans sa propre couleur.
Notez que git 2.5 (Q2 2015) corrige un bug:
Voir engagement 429ad20 de Junio C Hamano ( gitster
) , 13 mai 2015.
(Fusion par Junio C Hamano – gitster
– dans commit fd70780 , 22 mai 2015)
log
: ne raccourcissez pas les noms de décoration trop tôtL’amélioration ”
log --decorate
” dans Git 2.4 qui montre la validation à l’extrémité de la twig en cours, par exemple ”HEAD -> master
“, n’a pas fonctionné avec –decorate = full.
Git 2.9.x + (Q3 2016) corrigera un autre bug et la color=auto
honneur color=auto
pour %C(auto)
Git 2.10.2 (oct. 2016) corrige d’autres bogues avec commit 82b83da (29 sept. 2016) et commit c99ad27 (17 sept. 2016) par René Scharfe (“) .
(Fusion par Junio C Hamano – gitster
– dans commit 76796d4 , 28 oct. 2016)
pretty
: évite d’append une réinitialisation pour%C(auto)
si la sortie est videNous émettons une séquence d’échappement pour réinitialiser la couleur et l’atsortingbut pour
%C(auto)
pour vous assurer que la coloration automatique est affichée comme prévu.
Arrêtez de le faire si la sortie strbuf est vide , c’est-à-dire lorsque%C(auto)
apparaît au début de la chaîne de format, car il n’y a pas besoin de réinitialisation et nous économisons quelques octets dans la sortie.
pretty
: laissez%C(auto)
réinitialiser tous les atsortingbutsRéinitialiser les couleurs et les atsortingbuts sur
%C(auto)
pour permettre un contrôle entièrement automatique sur ceux-ci; Dans le cas contraire, des atsortingbuts tels que bold ou reverse peuvent toujours être appliqués à partir des espaces réservés%C
précédents .
Les parenthèses:
%C(...): color specification, as described in color.branch.* config option
Donc, %C(yellow reverse)
fonctionnerait.
L’option de configuration log.decorate
peut activer / désactiver les décorations par défaut dans les journaux.
git config --global log.decorate full
Une fois cela fait, vous pouvez utiliser color.decorate.*
Pour jouer avec les couleurs