Git конфликты слияния/перезагрузки цвета

Мне было интересно, есть ли у кого-то трюк, чтобы покрасить вывод слияния или переустановки, когда есть конфликт. Я хочу специально выделить строку с именем файла, например, вторую строку:

Auto-merging CMakeLists.txt
CONFLICT (content): Merge conflict in CMakeLists.txt
Failed to merge in the changes.

Спасибо

ИЗМЕНИТЬ:

Используя git псевдоним и функцию bash, я могу написать это:

color-merge = "!f() { git merge --no-commit --stat $1| egrep --color 'CONFLICT .*|$'; }; f"

Это будет окрашивать все линии конфликта, но:

  • Невозможно изменить параметры, переданные для объединения
  • На ветке не будет завершено завершение

Итак, я ищу что-то более мощное.

Приветствия

Ответ 1

Другим вариантом может быть создание git alias. Это предпочтительнее для меня, потому что он сохраняет вместе git -специальные настройки вместо того, чтобы где-то плавать где-то в другом файле .profile.

Добавление такого рода в ваш ~/.gitconfig или локальный проект git .git/config также должно работать:

[alias]
    color-merge = "!f() { git merge [email protected] | egrep --color 'CONFLICT .*|$' ; }; f"

Вызвать это так: git color-merge branch --option1

Обратите внимание, что ваша оболочка GREP_COLOR переменная среды будет контролировать используемый цвет.

Ответ 2

Вот функция bash, которая доставит вас туда (кроме завершения ветвления):

   git-merge-color () { git merge  [email protected] | egrep --color 'CONFLICT .*|$'; }

Вы можете вызывать git -merge-color с любыми аргументами git merge '.

Ответ 3

Это старый вопрос, на который ссылаются новые вопросы, и это первый, который появляется в результатах поиска Google, поэтому я думаю, что удобно опубликовать обновленный ответ через 5 лет:

Просто добавьте строку unmerged = <color> в группу [color "status"] в файле настроек git (~/.gitconfig), например:

[color "status"]
     unmerged  = yellow

Я использую git --version 2.11.0. Итак, да, наконец, git поддержал его: -)

Ответ 4

[color]
  branch = auto
  diff = auto
  status = 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

http://jblevins.org/log/git-colors

Так что никаких цветов для конфликта слияния я боюсь.