我想知道是否有人在发生冲突时为合并或变换的输出着色。 我想特别为带有文件名的行着色,例如第二行:
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"
这将为所有冲突线着色,但是:
所以我正在寻找更强大的东西。
干杯
答案 0 :(得分:5)
另一种选择可能是创建git alias。这对我来说比较好,因为它会将git特定的自定义设置保存在一起,而不是漂浮在某个不相关的.profile
文件的其他地方。
向~/.gitconfig
或本地git项目.git/config
添加类似内容也应该有效:
[alias]
color-merge = "!f() { git merge $@ | egrep --color 'CONFLICT .*|$' ; }; f"
像这样调用它:git color-merge branch --option1
请注意,您的shell GREP_COLOR
environment variable将控制使用的颜色。
答案 1 :(得分:1)
这是一个bash函数,可以帮助你(分支完成除外):
git-merge-color () { git merge $@ | egrep --color 'CONFLICT .*|$'; }
您可以使用任何'git merge'参数调用git-merge-color。
答案 2 :(得分:1)
这是一个从较新问题引用的旧问题,它是我的Google搜索结果中出现的第一个问题,因此我认为5年后发布更新的答案很方便:
只需将行unmerged = <color>
添加到您的git设置文件([color "status"]
)中的~/.gitconfig
组中,就像这样:
[color "status"]
unmerged = yellow
我正在使用git --version
2.11.0 。所以是的,最后git支持它: - )
答案 3 :(得分:0)
[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
因此,恐怕没有合并冲突的颜色。