Git日志输出中的颜色合并提交方式有所不同?

时间:2017-04-24 20:30:53

标签: git

我目前使用以下pretty定义格式化我的Git日志:

[format]
  pretty = format:%C(normal)%h %C(blue)%s %C(yellow)[%an]%C(reset)

这导致以下输出:

enter image description here

大多数情况下,我不需要过多关注合并提交,因此默认情况下我有一个包含--no-merges标志的别名:

enter image description here

我实际上更喜欢合并提交日志条目总是存在但是与非合并提交日志条目的颜色不同(所以我可以训练我的眼睛默认跳过它们。)

是否可以将合并提交日志条目与非合并提交日志条目区别开来?如果是这样,我该如何实现?

1 个答案:

答案 0 :(得分:1)

您可以使用git别名(例如使用)来实现。 sed。

[alias]
    logo = "!logo(){ git log --pretty='format:<<%p>>%H %s %D' $@ | sed -e 's/<<[^ ]* [^ ]*\\( [^ ]*\\)*>>/\\x1B[36m/' -e 's/<<[^ ]*>>//' -e 's/$/\\x1B[0m/' | less -FRSX;  }; logo"

%p说明符将打印提交的所有父项。 sed模式可以识别何时有多个父对象,并用颜色代码替换该情况。在每一行的末尾重置颜色。

函数wrapper和less分别使您能够传递git log参数和恢复分页。