Цвет в git-log
при выполнении git log --decorate --pretty=oneline
на выходе будут такие записи, как (HEAD, refs/published/master, master)
С окраской.
у меня также есть следующее В моем gitconfig:
[color "branch"]
current = yellow reverse
local = yellow
remote = green
как вы реплицируете эти цвета при выполнении пользовательского формата, как показано ниже?
git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"
4 ответов
по состоянию на git 1.8.3 (24 мая 2013), вы можете использовать %C(auto)
для украшения %d
в строке формат git log
.
С заметки:
* "git log --format" specifier learned %C(auto) token that tells Git
to use color when interpolating %d (decoration), %h (short commit
object name), etc. for terminal output.)
на git log --decorate
поставит по умолчанию:
- голова в голубом
- удаленные ветви в красном
- тег зеленый
и может быть изменено с помощью color.decorate
конфигурации.
но git log --format
не предлагайте способ отображения конкретно HEAD
или пульт или ветвь: все три отображаются через %d
, С одним цветом вероятный.
обновление май 2013, as указанных ниже by Элад Шахар (голосуют), то git 1.8.3 предлагает еще один вариант:
git log –format
теперь%C(auto)
токен, который говорит Git использовать цвет при разрешении%d
(украшения),%h
(короткое имя объекта фиксации) и т. д. для терминального выхода.
этой сообщение в блоге Atlassian комментарии, что эта функция является частью нескольких других ориентирован на формат (git rebase
, git count-objects
) и цвета (git branch -vv
)
помимо этого, из auto,reset
из 1.8.2, который автоматически отключает цвета, когда выход не используется для terminal1
%C(auto,blue)Hello%C(auto,reset)
Примечание: git 2.4+ (Q2 2015) сделает лучшую работу по сбросу цвета вокруг имен ветвей.
См.совершить 5ee8758 by Junio C Hamano (gitster
):
log --decorate
: не пропускайте цвет" commit " в следующий элементв "
git log --decorate
", вы увидите заголовок фиксации следующим образом:
commit ... (HEAD, jc/decorate-leaky-separator-color)
где "
commit ... (
" окрашен вcolor.diff.commit
, "HEAD
" incolor.decorate.head
, ",
" вcolor.diff.commit
, название филиала вcolor.decorate.branch
и после закрытия ")
" вcolor.diff.commit
.если вы хотите нарисовать название головной и локальной ветви в том же цвете, что и текст тела (возможно, потому, что голубой и зеленый слишком слабы на Черном-на-белом терминале, чтобы быть читаемым), вам не хотелось бы говорить
[color "decorate"]
head = black
branch = black
потому что вы не сможете повторно использовать ту же конфигурацию на белом-на-черном терминале. Вы наивно ожидаете
[color "decorate"]
head = normal
branch = normal
работать, но, к сожалению, это не так.
Он рисует строку "HEAD
" и название ветви того же цвета, что и открывающая скобка или запятая между элемент декора.
Это связано с тем, что код забывает сбросить цвет после печати "префикса" в своем собственном цвете.
обратите внимание, что git 2.5 (Q2 2015) исправляет ошибку:
посмотреть совершить 429ad20 by Junio C Hamano (gitster
), 13 мая 2015 года.
(слитый Junio C Hamano -- gitster
-- на совершить fd70780, 22 мая 2015)
log
: не сокращайте имена украшения слишком ранов "
log --decorate
" улучшение в Git 2.4, которое показывает фиксацию на кончике текущей ветви, например"HEAD -> master
", не работал с --decorate=full.
Git 2.9.x+ (Q3 2016) исправит еще одну ошибку и честь color=auto
на %C(auto)
Git 2.10.2 (Oct. 2016) исправляет другие ошибки с совершить 82b83da (29 сентября 2016), и совершить c99ad27 (17 Sep 2016) by Шарфе Рене (`).
(слитый Junio C Hamano -- gitster
-- на совершить 76796d4, 28 окт 2016)
pretty
: избегайте добавления "Reset" для%C(auto)
если вывод пустмы испускаем escape-последовательность для сброса цвета и атрибута для
%C(auto)
чтобы убедиться, что автоматическая окраска отображается как предназначенный.
прекратите делать это, если выходной strbuf пуст, т. е.%C(auto)
появляется в начале строки формата, потому что тогда нет необходимости в сбросе, и мы сохраняем несколько байтов на выходе.
pretty
: да%C(auto)
сбросить все атрибутыцвета сброс и атрибуты на
%C(auto)
включить полный автоматический контроль над ними; в противном случае атрибуты, такие как полужирный или обратный, могут еще в эффект от предыдущего%C
заполнители.
заключить их в скобки:
%C(...): color specification, as described in color.branch.* config option
Так %C(yellow reverse)
будет работать.
опции конфигурации log.decorate
включить/отключить украшения по умолчанию в журналах.
git config --global log.decorate full
как только это будет сделано, вы можете использовать color.decorate.*
играть с цветами