Как раскрасить вывод git?

Есть ли способ для вывода цвета для git (или любой команды)?

Рассматривать:

baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: app/models/message_type.rb # no changes added to commit (use "git add" and/or "git commit -a") baller@Laptop:~/rails/spunky-monkey$ git add app/models 

А также

 baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: app/models/message_type.rb # 

Результат выглядит одинаково, но информация совершенно другая: файл перешел от неустановленного к поэтапному для фиксации.

Есть ли способ раскрасить результат? Например, неустановленные файлы красные, устраиваются зеленые?

Или даже Changes not staged for commit: красным и # Changes to be committed: на зеленый?

Работа в Ubuntu.

EDIT: Googling нашел этот ответ, который отлично работает: git config --global --add color.ui true .

Однако существует ли вообще общее решение для добавления цвета к выходу команды?

  • Как копировать git-репо из Makefile?
  • Обновление переменной git в командной строке командной строки для каждой команды
  • Как найти все репозитории git в заданных папках (быстро)
  • Как предотвратить `git difftool` от вызова другого` vimdiff`?
  • xargs git: пропустить ввод пользователя
  • С какой целью perl * будет исключен в yum.conf?
  • В чем разница между '* .txt' и * .txt?
  • Как git и svn использовать существующий прокси-сервер ssh?
  • 8 Solutions collect form web for “Как раскрасить вывод git?”

    Вы можете создать раздел [color] в ~/.gitconfig например, следующим содержимым

     [color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true 

    Вы также можете точно контролировать то, что вы хотите покрасить, каким образом, например

     [color "status"] added = green changed = red bold untracked = magenta bold [color "branch"] remote = yellow 

    Надеюсь, вам это поможет. И, конечно же, вам нужен терминал, поддерживающий цвет.

    Вероятно, вы хотите использовать

     git config --global color.ui auto 

    В auto части говорится, что git будет пытаться использовать цвет только на терминалах, которые его поддерживают, и вы не получите ANSI-последовательностей, если вы перенаправляете вывод команд git в файл, например. Установка его в true аналогична auto , и это также значение по умолчанию, поскольку Git 1.8.4.

    color.ui – это мета-конфигурация, которая включает в себя все различные color.* конфигурации color.* Доступны команды git.

    Это подробно объясняется в git help config .

     git config --global color.ui auto git config --global color.branch auto git config --global color.status auto 

    Принятый ответ дает наиболее распространенное решение. Если по какой-либо причине вам не нужно постоянно изменять конфигурацию, что делает это решение, вы можете переопределить конфигурацию для одной команды git:

     git -c color.ui=always <usual git command and options> 

    Например:

     git -c color.ui=always status git -c color.ui=always diff 

    Тестирование: поддерживается на git 2.4.6, не поддерживается на git 1.7.1.

     git config --global color.ui always git config --global color.branch always git config --global color.diff always git config --global color.interactive always git config --global color.status always git config --global color.grep always git config --global color.pager true git config --global color.decorate always git config --global color.showbranch always 

    Вы можете сделать это с помощью Arbitrary Command Output Colourer . В основном это работает, но я не понял, как обойти ошибку, когда подсказки, ожидающие ввода, не отображаются, и вы не можете просто ввести нужный необходимый ввод и нажать enter, чтобы продолжить в каждом случае.

    Пример ~/.acoc.conf для git :

     # git [git/ae] /.*(error:.*)/ red+bold /.*(warning:.*)/ yellow /.*(hint:.*)/ magenta /.*(up-to-date).*/ green+bold /.*(nothing to commit).*/ green /^(\+.*)/ green /^(-.*)/ red 

    .., который отлично работает вместе с alias git="acoc git" в .bash_profile .

    Я знаю, что этой должности четыре года, но никто не ответил из моего лагеря, слепой. Если вы можете различать цвета, игнорируйте мой пост.

    «git status», например, выделяет текст, белый на фоне / черный на белом фоне (разборчивый), темно-серый для удаления (неразборчивый на черном фоне, но разборчивый на белом фоне) и средний серый для добавления (ячмень, читаемый на черном фон, неразборчивый на белом фоне). Я использовал для переключения фона моего окна терминала на / из белого / черного цвета, чтобы я мог читать неразборчивый текст. Простое решение:

      git status | more 

    Это делает текст разборчивым в стандартном оконном окне белого или черного фона.

    или отключить все раскраски:

     git config --global color.ui false git config --global color.branch false git config --global color.diff false git config --global color.interactive false git config --global color.status false git config --global color.grep false git config --global color.pager false git config --global color.decorate false git config --global color.showbranch false 
    Interesting Posts

    Эмуляция адаптера Bluetooth LE для проведения приемочного тестирования

    Создание deb: Как поместить архивные файлы в отдельный пакет .deb?

    Загрузка DVD KNOPPIX для вывода из командной строки grub

    qemu + windows 10 странное поведение

    Создание новых пользователей через терминал не назначает правильные разрешения?

    Требуется ли для имитации сбой mdadm перестроить весь массив? mdadm -manage -set-faulty

    Почему квадратные скобки препятствуют расширению оболочки?

    команда не найдена в сценарии оболочки

    Старая машина Linux, которую вы все еще запускаете

    Как настроить пользовательскую квоту для / var / www?

    Gnome 3: как установить кнопку питания для выключения вместо приостановки?

    Заменить непечатаемые символы в perl и sed

    CSV-обработка файлов – удалите кавычки и замените разделитель запятой на вкладку

    Как отправить текст на USB-устройство?

    Возможно ли подключение Wi-Fi и Ethernet к одной сети?

    Linux и Unix - лучшая ОС в мире.