Git颜色合并/ rebase冲突

Plu*_*luc 15 git

我想知道是否有人在发生冲突时为合并或变换的输出着色.我想特别为带有文件名的行着色,例如第二行:

Auto-merging CMakeLists.txt
CONFLICT (content): Merge conflict in CMakeLists.txt
Failed to merge in the changes.
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:

使用git别名和bash函数我可以这样写:

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

这将为所有冲突线着色,但是:

  • 改变传递给合并的选项是不可能的
  • 要跟踪的分支机构没有完成

所以我正在寻找更强大的东西.

干杯

bep*_*ter 5

另一种选择可能是创建一个git别名.这对我来说比较好,因为它会将git特定的自定义保存在一起,而不是在.profile某个地方的不相关文件中浮动.

将这样的内容添加到您~/.gitconfig或本地git项目中.git/config也应该有效:

[alias]
    color-merge = "!f() { git merge $@ | egrep --color 'CONFLICT .*|$' ; }; f"
Run Code Online (Sandbox Code Playgroud)

像这样调用它: git color-merge branch --option1

请注意,shell的GREP_COLOR环境变量将控制使用的颜色.


Kri*_*ols 1

[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
Run Code Online (Sandbox Code Playgroud)

所以恐怕合并冲突没有颜色。