Команда git log
- это то, что Git называет фарфор . Это означает, что он предназначен для использования настоящими людьми, в отличие от других команд Git, таких как git rev-parse
и git for-each-ref
, которые в основном или полностью предназначены для компьютерных программ. бежать.
Фарфоровые команды обычно настраиваются и часто выполняют такие вещи, как цвет или разбивают на страницы свой вывод. Это верно и для git log
. Несколько элементов управления для этого являются git config
записи:
color.ui = auto
log.decorate = auto
Эта автоматическая настройка, которая является настройкой по умолчанию - вы можете изменить ее на always
или never
- говорит Git: Когда команда записывает свой вывод в терминал, сделайте это, но когда это не так (например, когда он пишет в канал, как в git branch | grep ...
), не делайте этого.
Опция log.decorate
управляет украшениями (master)
. Цвет конкретного текста и, если да, то какими цветами управляет довольно сложный лабиринт опций, который просто начинается с color.ui
.
Установка color.ui
в always
нарушит наивные сценарии, которые запускают фарфоровые команды в конвейерах, и ожидает, что для color.ui
будет установлено значение по умолчанию auto
. Ни один из собственных скриптов Git не является наивным, как этот, но вы можете использовать свои собственные расширения или те, которые получены от людей, которые не думали об этой проблеме, поэтому будьте осторожны при переопределении этих значений по умолчанию.
(Кстати, будьте осторожны с =
в настройках. Они необходимы, например, внутри .git/config
и git -c color.ui=true log
, но запрещены в git config log.decorate auto
. Это сумасшедшая путаница исторических артефактов и кодирования любого было целесообразно в то время.)