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
Так что никаких цветов для конфликта слияния я боюсь.