По git log --decorateумолчанию будет помещено:
- ГОЛОВА в голубом
- удаленные филиалы в красном
- тег в зеленом
и может быть изменен через color.decorateconfig.
Но git log --formatони не предлагают способ конкретно отображать HEAD или пульты или ветвь: все три отображаются %dс одним возможным цветом.
Обновление мая 2013 как указано ниже по Elad Шахар (upvoted), мерзавец 1.8.3 предлагает больше один вариант:
git log –formatтеперь содержит %C(auto)токен, который сообщает Git использовать цвет при разрешении %d(оформлении), %h(короткое имя объекта фиксации) и т.д. для вывода терминала.
В этом сообщении в блоге Atlassian говорится, что эта функция является частью нескольких других, ориентированных на формат ( git rebase, git count-objects) и цвета ( git branch -vv)
Это дополнение к предыдущей версии auto,reset1.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" in color.decorate.head, " ," in 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- в commit 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 г.) исправляет другие ошибки с помощью фиксации 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заполнителей .