Как раскрасить git -status output?

Я хочу раскрасить вывод git -status, чтобы:

untracked files = magenta
new files = green
modified files = blue
deleted files = red

Вместо этого я вижу поставленные файлы в зеленых и неустановленных файлах: screenshot of git-status

My.gitconfig настроен следующим образом:

[color]
status = auto

[color "status"]
added = green
changed = blue
untracked = magenta
deleted = red

Ответ 1

Из git config doc:

color.status.<slot>

Использовать настраиваемый цвет для раскраски статуса.
<slot> является одним из:

  • header (текст заголовка сообщения о состоянии),
  • added или updated (файлы, которые добавлены, но не зафиксированы),
  • changed (файлы, которые были изменены, но не добавлены в индекс),
  • untracked (файлы, которые не отслеживаются git),
  • branch (текущая ветка) или
  • nobranch (цвет, на котором не отображается предупреждение о ветвлении, по умолчанию - красное).

Значения этих переменных могут быть указаны как в color.branch.<slot>.

Итак, это сработает:

git config color.status.changed blue
git config color.status.untracked magenta

Однако:

new files = green
deleted files = red

Невозможно: вам нужно выбрать один цвет:

  • если они добавлены в индекс, они будут выбирать цвет для color.status.added.
  • если они не добавлены в индекс, они будут выбирать цвет или color.status.modified.

Конечно, прокомментировал elboletaire:

Не забудьте включить вывод цвета, если он не был включен ранее:

git config --global color.ui true

Шон Люттин добавляет:

Команда также может принимать несколько параметров в кавычках. Это включает в себя два цвета (фон переднего плана) из этого списка:

нормальный, черный, красный, зеленый, желтый, синий, пурпурный, голубой и белый;

а также включает один атрибут (стиль) из этого списка:

bold, dim, ul, blink и reverse.

Итак, это сработает:

git config color.status.changed "blue normal bold"
git config color.status.header "white normal dim"

Примечание: при использовании git 2.9.1 (июль 2016 г.), в схеме раскраски вывода вы узнали два новых атрибута, курсив и strike, в дополнение к существующим жирным, назад и т.д.

См. commit 9dc3515, commit 54590a0, commit 5621068, commit df8e472, commit ae989a6, совершить adb3356, commit 0111681 (23 июня 2016 г.) Джефф Кинг (peff).
(объединено Junio ​​C Hamano - gitster - в commit 3c5de5c, 11 июля 2016 г.)

Он также позволяет "no-" для отрицания атрибутов

Использование "no-bold", а не "nobold", легче читать и более естественно набирать (для меня, во всяком случае, хотя я был человеком, который ввел "nobold" в первую очередь). Легко разрешить оба.