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.

4 ответа

Решение

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

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

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

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

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

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

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

Поделитесь своим форматом журнала 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

Вот два псевдонима, которые я написал, как только я понял синтаксис использования пользовательских шестнадцатеричных значений цвета, как показано в ответе @VonC.

Существует четыре версии, единственное отличие - это директива --graph, а в версиях 'f' также будут показаны файлы, которые были добавлены, удалены или изменены:

[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"

Я использовал этот сайт, чтобы выбрать точные цвета, которые я хотел, а затем скопировал из него шестнадцатеричное значение:

https://www.colorhexa.com/

Для Windows откройте файл.gitconfig, который находится в вашей папке "C:\Users\YourUserName", и добавьте раздел псевдонимов, как показано выше.

Надеюсь, они тебе нравятся.

Я использую Ubuntu 18.04, и я смог использовать предложения Xiaofei HAN.

Для новичка, пытающегося завершить это, мне повезло, отредактировав.gitconfig.

nano ~/.gitconfig

вставить блок [alias] сверху под существующий текст

CTRL + O (выписать) + CTRL + X (закрыть нано)

После этого, чтобы увидеть красивые цвета, которые вы можете использовать

git logs

с помощью

'git log' даст вам представление без цветов,

то же самое для 'git logs --oneline', за исключением того, что один будет показывать процветание на стороне

спасибо, надеюсь, это кому-нибудь поможет

Другие вопросы по тегам