Как покрасить консоль Git?

371

Недавно я увидел, что gitконсоль в Windows имеет цвет, например, зеленый для дополнений, красный для удалений и т. Д. Как мне так раскрасить gitконсоль?

Для его установки я использовал команду: $ sudo apt-get install git-core

MauroPorras
источник
6
Начиная с git1.8.4, вы должны увидеть цвета по умолчанию. Смотрите мой ответ ниже .
VonC
1
@ VonC git 1.9.1 в Ubuntu 14.04 не произошло. Пришлось установить конфиг из ответа ДжоэлПурра сам.
Изката,
1
@Изката странная, позже опробую, а как насчет мерзавца 2.1+? (как я прокомментировал ниже в stackoverflow.com/questions/10998792/… )
VonC

Ответы:

682

Как отметил по @VonC , по color.uiумолчанию , чтобы autoтак Git 1.8.4


Из вопроса Unix & Linux Stackexchange Как раскрасить вывод git? и ответ @Evgeny :

git config --global color.ui auto

Это color.uiмета-конфигурация, которая включает в себя все различные color.*конфигурации, доступные с помощью gitкоманд. Это объясняется подробно в git help config.

Так что в принципе это проще и более перспективно, чем устанавливать разные color.*настройки отдельно.

Подробное объяснение из git configдокументации :

color.ui: Эта переменная определяет значение по умолчанию для переменных, таких как color.diffи color.grepкоторые управляют использованием цвета для семейства команд. Его область действия будет расширяться по мере того, как другие команды изучат конфигурацию для установки значения по умолчанию для этой --colorопции. Установите для него значение, alwaysесли вы хотите, чтобы весь вывод, не предназначенный для потребления машиной, использовал цвет, trueили autoесли вы хотите, чтобы такой вывод использовал цвет при записи в терминал, falseили neverесли вы предпочитаете, чтобы команды git не использовали цвет, если это не разрешено явно с некоторыми другая конфигурация или --colorопция.

Джоэл Пурра
источник
11
Это работает и для OSX, а не только для Linux, как задавался вопрос
StackExchange What The Heck
Вероятно, нужно добавить «истина» в конце. git config --global color.ui auto true
Вамши
6
@Skeptor: нет, autoдостаточно.
Джоэл Пурра
2
@Phani: да, это постоянно.
Джоэл Пурра
5
Он постоянен, потому что добавляет ui = autoзапись в [color]раздел в ~/.gitconfigфайле пользователя .
Андрис
55

Например, см. Https://web.archive.org/web/20080506194329/http://www.arthurkoziel.com/2008/05/02/git-configuration/.

Интересная часть

Цветная продукция:

git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto
KingCrunch
источник
3
Я использую более старую версию git и настройка color.ui autoне работает для меня, это сработало. Спасибо.
Мэтт К
30

Добавьте в ваш файл .gitconfig следующий код:

  [color]
    ui = auto
  [color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
  [color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
  [color "status"]
    added = yellow
    changed = green
    untracked = cyan
Виктор
источник
7

Git автоматически окрашивает большую часть вывода, если вы об этом попросите. Вы можете получить очень конкретную информацию о том, что вы хотите покрасить и как; но чтобы включить все цвета терминала по умолчанию, установите для color.ui значение true:

git config --global color.ui true
Tanmay
источник
6

В Ubuntu или любой другой платформе (да, Windows тоже!); начиная с git1.8.4 , выпущенного 2013-08-23 , вам ничего не нужно делать :

Многие учебные пособия учат пользователей устанавливать "color.ui" на "auto" как первое, что вы зададите после " user.name/email", чтобы познакомиться с Git. Теперь переменная по умолчанию равна " auto".

Таким образом, вы увидите цвета по умолчанию.

VonC
источник
2
(ну, даже Windows, в зависимости от терминала: stackoverflow.com/a/12133244/6309 )
VonC
2
Используя Ubuntu в 2014 году, установил git и все равно пришлось запускать git config --global color.ui auto. То же самое верно для моего Mac, единственным, который по умолчанию autoбыл Git Bash на моем ПК с Windows.
Саргас
1
@sargas Конечно, вам нужно установить с PPA : launchpad.net/~git-core/+archive/ppa (для Ubuntu) или git-scm.com/download/mac (для Mac)
VonC
1
Понятно, поэтому все зависит от источника. Я ценю ваше время, чтобы прокомментировать это.
Саргас
6

В своем ~/.gitconfigфайле просто добавьте это:

[color]
  ui = auto

Он заботится обо всех ваших командах git.

Чунтао Лу
источник
5

Другой способ - отредактировать .gitconfig(создать, если не существует), например:

vim ~/.gitconfig

и затем добавьте:

[color]
  diff = auto
  status = auto
  branch = auto
atupal
источник
3
как упомянуто @ chuntao-lu [color] ui = autoдостаточно.
Чако Мэтью
5

GIT использует цветной вывод по умолчанию, но в некоторых системах, таких как CentOS, он не включен. Вы можете включить это так

git config --global color.ui  true 
git config --global color.ui  false 
git config --global color.ui  auto 

Вы можете выбрать необходимую команду здесь.

Здесь --global необязательно применять действие для каждого хранилища в вашей системе. Если вы хотите применить раскраску только для текущего репозитория, то вы можете сделать что-то вроде этого -

 git config color.ui  true 
Дипак Диксит
источник
1

С Git 2.18 у вас больше контроля над тем, как вы хотите указать цвета в консоли.
Команда " git config" использует отдельные параметры, например " --int", " --bool" и т. Д., Чтобы указать, какой тип вызывающий объект хочет интерпретировать как значение .

Новый "--type=<typename> опция ", которая облегчит определение новых типов.

Смотрите коммит fb0dc3b (18 апреля 2018 года) и коммит 0a8950b (09 апреля 2018 года) Тейлор Блау ( ttaylorr) .
(Слиты Junio C Hamano - gitster- в фиксации e3e042b , 8 мая 2018)

builtin/config.c: поддержка --type=<type>как предпочтительный псевдоним для--<type>

git configдавно позволил вызывающим абонентам предоставлять «спецификатор типа», который инструктирует git config(1) гарантировать, что входящие значения могут интерпретироваться как этот тип, и (2) что исходящие значения канонизируются под этот тип.

В другой серии мы предлагаем расширить эту функциональность --type=colorи --defaultзаменить --get-color.

Однако мы традиционно используем --colorдля обозначения «colorize this output» вместо «это значение должно рассматриваться как цвет».

В настоящее время git configне поддерживается этот тип раскрашивания, но мы должны быть осторожны, чтобы не сидеть на корточках по этому варианту слишком рано, чтобы он git configмог поддерживать --color(в традиционном смысле) в будущем, если это желательно.

В этом патче мы поддерживаем --type=<int|bool|bool-or-int|...>в дополнение к --int, --boolи т. Д.
Это позволяет вышеупомянутому грядущему патчу поддерживать запрос значения цвета по умолчанию через --type=color --default=..., без расточительства --color.

Мы сохраняем историческое поведение жалоб, когда --<type>задается несколько флагов в старом стиле , а также распространяем его на конфликтующие --type=<type>флаги нового стиля . --int --type=int(и его коммутативная пара) не жалуется, но --bool --type=int(и его коммутативная пара) не жалуется .

Итак, раньше у вас --boolи --intсейчас ( документация ):

--type <type>

' git config' будет гарантировать, что любые входные или выходные данные допустимы при данных ограничениях типа, и будет канонизировать исходящие значения в<type> канонической форме.

Действительные <type>включают в себя:

  • ' bool': канонизировать значения как " true" или " false".
  • ' int': канонизировать значения как простые десятичные числа. Дополнительный суффикс ' k', ' m' или ' g' приведет к умножению значения на 1024, 1048576 или 1073741824 при вводе.
  • ' bool-or-int': канонизировать в соответствии с ' bool' или 'int ', как описано выше.
  • ' path': канонизировать, добавляя ведущий ~к значению $HOMEи ~userв домашний каталог для указанного пользователя. Этот спецификатор не влияет при установке значения (но вы можете использоватьgit config section.variable ~/ из командной строки, чтобы позволить вашей оболочке выполнить расширение.)
  • ' expiry-date': канонизируется путем преобразования фиксированной или относительной строки даты в метку времени. Этот спецификатор не влияет при установке значения.
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

Обратите внимание, что в Git 2.22 (Q2 2019) поясняется, что « git config --type=color ...предназначен для замены» git config --get-color, но есть небольшая разница, которая не была задокументирована, а теперь исправлена.

См. Коммит cd8e759 (05 марта 2019 г.) Джеффа Кинга ( peff) .
(Слиты Junio C Hamano - gitster- в фиксации f6c75e3 , 20 марта 2019)

config: --type=colorвывод документа - полная строка

Несмотря на то, что более новая « --type=colorопция» git configпредназначена для совместимости сверху с традиционной --get-colorопцией « », в отличие от последней, ее выходные данные не являются неполной строкой, в которой отсутствует LF в конце.
Это делает его совместимым с выходом других типов, таких как "git config --type=bool ".

Документируйте это , поскольку это иногда удивляет ничего не подозревающих пользователей.

Теперь это звучит так:

--type=color [--default=<default>]предпочтительнее --get-color (но обратите внимание, что --get-colorпропущенная в конце новая строка печатается --type=color).


Вы можете увидеть git config --type=boolиспользование Git 2.26 (Q1 2020) для замены " git config --bool" вызовов в примерах шаблонов.

См. Коммит 81e3db4 (19 января 2020 г.) Люциуса Ху ( lebensterben) .
(Слиты Junio C Hamano - gitster- в фиксации 7050624 , 30 Jan 2020)

templates: исправить устаревшую опцию типа --bool

Подписано: Люциус Ху

--boolВариант git-configотмечен как исторический, и пользователям рекомендуется использовать --type=boolвместо этого.
Этот коммит заменяет все вхождения --boolв шаблонах.

Также обратите внимание, что никакие другие устаревшие параметры не найдены, в том числе --int:--bool-or-int , --pathили --expiry-date.

VonC
источник
0

обратитесь сюда: https://nathanhoad.net/how-to-colours-in-git/

шаги:

  1. Откройте ~ / .gitconfig для редактирования

    vi ~ / .gitconfig

  2. Вставьте следующий код:

    [color]
      ui = auto
    [color "branch"]
      current = yellow reverse
      local = yellow
      remote = green
    [color "diff"]
      meta = yellow bold
      frag = magenta bold
      old = red bold
      new = green bold
    [color "status"]
      added = yellow
      changed = green
      untracked = cyan
    
  3. Сохраните файл.

Просто измените любой файл в вашем локальном репо и сделайте

git status
Гаджанан Малвадэ
источник
Уже есть тот же # answer-29320572 от Виктора
критикабоб