Як розфарбувати вихід git-стану?


93

Я хочу розфарбувати вихід git-стану так, щоб:

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

Натомість я бачу інсценовані файли зеленим кольором та нестадійні файли синім: скріншот git-стану

Мій .gitconfig налаштовано таким чином на основі деяких пошукових запитів:

[color]
status = auto

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

2
Примітка: git 2.9.1 підтримує атрибути курсиву та страйку. Дивіться мою редакцію нижче.
VonC

Відповіді:


131

З git config doc :

color.status.<slot>

Використовуйте спеціальний колір для розфарбовування стану. <slot>є одним із:

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

Значення цих змінних можуть бути вказані як у 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

Шон Луттін додає:

Команда також може приймати кілька параметрів у лапки. Це включає два кольори (фон переднього плану) із цього списку:

звичайний, чорний, червоний, зелений, жовтий, синій, пурпуровий, блакитний та білий;

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

жирний, тьмяний, ul, блимання та зворотне.

Отже, це буде працювати:

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

Примітка: з git 2.9.1 (липень 2016 р.), Вихідна схема забарвлення вивчила два нові атрибути, курсив тастрайк, крім існуючих напівжирних, зворотних та ін.

Див. Коміт 9dc3515 , коміт 54590a0 , коміт 5621068 , коміт df8e472 , коміт ae989a6 , коміт adb3356 , коміт 0111681 (23 червня 2016 р.) Від Джеффа Кінга ( peff) .
(Об’єднано Junio ​​C Hamano - gitster- у коміті 3c5de5c , 11 липня 2016)

Це також дозволяє " no-" заперечення атрибутів

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


30
Не забудьте увімкнути виведення забарвлення, якщо це раніше не було ввімкнено:git config --global color.ui true
elboletaire

1
@elboletaire хороший момент. Я включив його у відповідь для більшої наочності.
VonC

1
Дякую, color.ui - це відповідь.
Robeezy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.