git log --decorate
по умолчанию будет помещать:
- ГОЛОВА в голубом
- удаленные филиалы в красном
- тег в зеленом
и может быть изменен через color.decorate
config.
Но git log --format
не предлагает способ конкретно отображать HEAD
или пульты или ветвь: все три отображаются через %d
, возможен один цвет.
Обновите май 2013 г., как указано ниже Elad Shahar (проголосовало за), 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 , который автоматически отключает цвета, когда вывод не используется для терминала1
%C(auto,blue)Hello%C(auto,reset)
Примечание. Git 2.4+ (второй квартал 2015 г.) лучше справляется с сбросом цвета вокруг имен веток.
См. совершить 5ee8758 от Junio C Hamano (gitster
):
log --decorate
: не пропускайте цвет "фиксации" в следующий элемент
В "git log --decorate
" вы увидите такой заголовок фиксации:
commit ... (HEAD, jc/decorate-leaky-separator-color)
где "commit ... (
" нарисовано в color.diff.commit
, "HEAD
" в color.decorate.head
, ",
" в color.diff.commit
, имя ветки в color.decorate.branch
, а затем закрытие ")
" в color.diff.commit
.
Если вы хотите окрасить HEAD и имя локальной ветки в тот же цвет, что и основной текст (возможно, потому, что голубой и зеленый слишком тусклые на черно-белом терминале, чтобы их можно было прочитать), вам не нужно говорить
[color "decorate"]
head = black
branch = black
потому что вы не сможете повторно использовать ту же конфигурацию на терминале «белое на черном». Вы наивно ожидали
[color "decorate"]
head = normal
branch = normal
работать, но, к сожалению, это не так.
Он окрашивает строку «HEAD
» и имя ветки в тот же цвет, что и открывающая скобка или запятая между элементами декора.
Это потому, что код забывает сбросить цвет после печати «префикса» собственным цветом.
Обратите внимание, что в git 2.5 (второй квартал 2015 г.) исправлена ошибка:
См. фиксацию 429ad20 от 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 + (3 квартал 2016 г.) исправит еще одну ошибку и выполнит color=auto
для %C(auto)
Git 2.10.2 (октябрь 2016 г.) исправляет другие ошибки с помощью commit 82b83da (29 сентября 2016 г.) ) и совершить c99ad27 (17 сентября 2016 г.) с помощью Рене Шарфе (` `).
(Объединено с помощью Junio C Hamano - gitster
- в совершить 76796d4, 28 октября 2016 г.)
pretty
: избегать добавления сброса для %C(auto)
, если вывод пустой
Мы запускаем escape-последовательность для сброса цвета и атрибута для %C(auto)
, чтобы убедиться, что автоматическая окраска отображается должным образом.
Прекратите делать это, если выходной strbuf пуст, то есть когда %C(auto)
появляется в начале строка формата, потому что тогда нет необходимости в сбросе, и мы сохраняем несколько байтов на выходе.
pretty
: разрешить %C(auto)
сбросить все атрибуты
Сбросьте цвета и атрибуты при %C(auto)
, чтобы включить полный автоматический контроль над ними; в противном случае такие атрибуты, как полужирный или обратный, могут по-прежнему действовать от предыдущих %C
заполнителей.
person
VonC
schedule
05.05.2011