Как получить отдельные цвета для текущих, локальных и удаленных имен ссылок при использовании пользовательского формата журнала git?

16

У меня есть собственный формат журнала git, который я использую. Я color.ui=trueустановил в моем .gitconfig. Например, этот простой формат:

git log --pretty=format:"%h %d %s" --decorate

Это напечатало бы что-то вроде

52a41e0 (HEAD, local) Commit message foo
185bd17 (remote) The commit message

HEAD, local, remote будет выводиться без цвета по сравнению с тем, git log --oneline --decorateкоторый превосходит HEAD (в «жирный голубой»), локальный (в «bold green») и удаленный (в «bold red») с цветом. Теперь я могу обернуть что- %dто вроде того, %Cred%d%Cresetчто заставит все имена ссылок быть красными.

Как можно получить текущие, локальные и удаленные имена ссылок, чтобы они имели отдельные цвета при использовании пользовательского формата с git log?

Бен Доерр
источник
Я не думаю, что это возможно: stackoverflow.com/questions/5889878/color-in-git-log/…
VonC
Ack, не смотрел переполнение стека. Это очень плохо, хотя.
Бен Доерр
@VonC Может быть, вы должны добавить это в качестве ответа?
НН
@ НН У меня есть. Переполнение стека. Об одном из 10 тысяч вопросов о Git.
VonC

Ответы:

4

По git log --decorateумолчанию будет поставлено:

  • ГОЛОВА в голубой
  • удаленные ветви в красном
  • тег в зеленом

и может быть изменен через color.decorateконфиг.

Но git log --formatне предлагают способ отображения конкретно HEAD или пультов ДУ или ветви: все три отображаются через %d, с возможностью одного цвета.

- VonC на «Цвет в гит-логе»

оборота Том Вейсман
источник