Git симпатичные цветные цвета
Я пытаюсь настроить красивые цвета для Git. Из того, что я могу сказать, версия 1.6.0 распознает только красный, зеленый и синий.
$ 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
Кроме того, ни один из цветов не работает с цветовым форматом в скобках.
Есть ли способ отобразить доступные цветные цвета для Git?
К сожалению, это на старой машине SCO OpenServer 5.0.7, а последняя версия Git, выпущенная SCO Skunkworks, была 1.6.0.3.
Ответы
Ответ 1
У меня нет старой версии git
, чтобы убедиться, что поддерживаются цвета, отличные от red
, blue
и green
.
Хотя, я заметил, что даже с недавними версиями git
(например, 1,7.10) я использовал следующие цвета, кроме red
, green
и blue
в круглых скобках ()
, Для red
, green
и blue
круглые скобки необязательны.
Итак, попробуйте:
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"
Список цветов, о которых я знаю, по крайней мере:
normal
black
red
green
yellow
blue
magenta
cyan
white
Его можно комбинировать с одним из следующих атрибутов:
bold
dim
ul
blink
reverse
Если вы пытаетесь изменить цвета с помощью .gitconfig
, вы должны указать два цвета - передний план и фон, и вы можете объединить его с атрибутом.
Ответ 2
Git 2.3.0 (февраль 2015) позволит (благодаря Джеффу Кинку (peff
)):
parse_color
: поддержка 24-разрядных значений RGB
Некоторые терминалы (например, XTerm) позволяют использовать полные 24-битные спецификации цвета RGB, используя расширение для обычной цветовой схемы ANSI.
Позвольте пользователям указать гексагонарные цвета RGB, , позволяющие использовать важную функцию ярко-розовых рефлекторов:
git log --format="%h%C(#ff69b4)%d%C(reset) %s"
- лучшее управление атрибутами цвета:
parse_color
: распознать "no$foo
", чтобы очистить атрибут $foo
Вы можете включить атрибуты текста ANSI, такие как "reverse", поместив "reverse" в свою спецификацию цвета. Однако вы не можете попросить отключиться.
Для обычных случаев это не имеет значения. Вы должны включить "обратное" в начале цветной секции, а затем очистить все атрибуты с помощью "reset".
Однако вы можете включить некоторые атрибуты, а затем выборочно отключить другие. Например:
git log --format="%C(bold ul yellow)%h%C(noul) %s"
подчеркивает только хэш, но без необходимости повторного указания остальных атрибутов.
Это также может помочь сторонним программам, таким как contrib/diff-highlight
, которые хотят включить или отключить какой-либо атрибут без нарушения существующей раскраски.
Обратите внимание, что некоторые спецификации атрибутов, вероятно, бессмысленны (например, "bold nobold
" ). Мы не будем помечать такие конструкции, а вместо этого разрешаем терминалу сортировать его.
Ответ 3
Поделитесь файлом журнала 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
Вы также можете добавить псевдоним в ~/.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
то вы можете использовать псевдоним, который вы определяете в ~/.gitconfig
.
$ git logs