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.

3 61

3 ответа:

у меня нет старой версии 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 вы должны быть в состоянии указать два цвета - изображения и фон и вы можете объединить его с атрибутом.

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" в свою цветовую спецификацию. Однако вы не можете попросить выключить реверс.

для обычных случаев это не имеет значения. Вы бы включите " реверс "в начале цветного раздела, а затем очистите все атрибуты с помощью"сброса".

однако вы можете включить некоторые атрибуты, а затем выборочно отключить другие. Например:

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

подчеркивает только хэш, но без необходимости повторно указывать остальным атрибутам.

это также может помочь сторонним программам, например contrib/diff-highlight, которые хотят включить/выключить некоторые атрибуты не нарушая существующую окраску.

обратите внимание, что некоторые спецификации атрибутов, вероятно, бессмысленны (например,"bold nobold"). Мы не беспокоимся о том, чтобы отмечать такие конструкции,а вместо этого пусть терминал разберется.

Share my git log format:

$ 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