Як забарвити консоль Git?


371

Нещодавно я побачив, що gitконсоль у Windows кольорова, наприклад зелений для доповнень, червоний для видалень тощо. Як я можу кольорову gitконсоль?

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


6
Починаючи з git1.8.4, ви повинні бачити кольори за замовчуванням. Дивіться мою відповідь нижче .
VonC

1
@VonC git 1.9.1 на Ubuntu 14.04, не сталося. Довелося самому встановити конфігурацію з відповіді ДжоелПурри.
Ізката

1
@Izkata дивно, я тестую його пізніше, але як щодо git 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 Heck Heck

Ймовірно, потрібно додати "true" наприкінці. git config --global color.ui auto true
Vamshi

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

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

6

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

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

Так ви побачите кольори за замовчуванням.


2
(Ну, навіть вікна, в залежності від терміналу: 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

3
як @ chuntao-lu згаданого [color] ui = autoдостатньо.
Chacko Mathew

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) .
(Об’єднано Хуніо С Хамано - gitster- в комісії e3e042b , 08 травня 2018 р.)

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

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

В іншій серії ми пропонуємо розширити цю функціональність на --type=colorта --defaultзамінити --get-color.

Однак ми традиційно використовуємо --colorдля позначення "розфарбовування цього результату", а не "це значення слід розглядати як колір".

Наразі 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>канонічній формі 's.

Дійсні <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) .
(Об’єднав Хуніо С Хамано - 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) .
(Об'єднав Хуніо С Хамано - gitster- у комітеті 7050624 , 30 січня 2020 р.)

templates: виправити варіант застарілого типу --bool

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

--boolВаріант git-configвідзначений як історичний, і користувачам рекомендується використовувати --type=boolзамість цього.
Ця фіксація замінює всі випадки --boolв шаблонах.

Також зверніть увагу , що ніяких інших варіантів Застарілих типу не знайдені, в тому числі --int, --bool-or-int, --pathабо --expiry-date.


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

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