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
)):
- 24- битные значения цвета RGB ( коммит 17a4be2)
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"
Я использовал этот сайт, чтобы выбрать точные цвета, которые я хотел, а затем скопировал из него шестнадцатеричное значение:
Для 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', за исключением того, что один будет показывать процветание на стороне
спасибо, надеюсь, это кому-нибудь поможет