Git相当于oneline的相当格式字符串,包括颜色

时间:2015-05-30 22:03:32

标签: git

我正在尝试将oneline的Git格式设置重新创建为格式字符串(为了进一步扩展它)。

所以对于这个命令

git log --format=oneline

相当于oneline的格式字符串是什么? 我能得到的最接近的是

git log --format="%h %d %s"

但是,这不会产生任何颜色。我知道我可以硬编码其中一些,比如提交哈希。但%d具有动态颜色,具体取决于它显示的内容。

4 个答案:

答案 0 :(得分:18)

开启自动颜色

git log --format="%C(auto) %h %d %s"

,输出将如下所示

enter image description here

来自git log documentation

  

%C(...):颜色规范,如color.branch。* config选项中所述;添加自动,在开始时将仅在为日志输出启用颜色时发出颜色(通过color.diff,color.ui或--color,并且如果我们要去终端则尊重前者的自动设置)。 单独自动(即%C(自动))将在下一个占位符上启用自动着色,直到再次切换颜色

答案 1 :(得分:1)

你必须玩颜色。 您应该用来解决问题的颜色是auto,它为每种类型的参考采用不同的颜色。

一个例子:

%Cred%h %Cgreen%<(10,trunc)%cd %C(auto)%d%Creset%s %C(bold blue)%an

答案 2 :(得分:1)

有一个很好的脚本可以帮到你。将其添加为别名,您将看到很酷的打印。

https://github.com/garybernhardt/dotfiles/blob/master/.githelpers

别名:l = "!source ~/.githelpers && pretty_git_log"

这里有一个示例.gitconfig文件,介绍如何设置别名+更多别名。

答案 3 :(得分:1)

经过一段时间的努力,我终于决定使用这样漂亮的格式:

lg = "log --graph --pretty=format:'%Cblue%ad%Creset -%C(yellow)%d%Creset %h %s %C(bold blue)<%an>%Creset'"

漂亮的效果看起来像这样 enter image description here

以下是如何使用它:

第1步
使用您最喜欢的编辑器(如emacs或vim)打开〜/ .gitconfig文件。在[alias]部分下添加以下命令。

lg = "log --graph --pretty=format:'%Cblue%ad%Creset -%C(yellow)%d%Creset %h %s %C(bold blue)<%an>%Creset'"

第2步

在任何本地git存储库中,尝试执行:

git lg

因此,您现在可以看到漂亮的格式化日志输出,就像屏幕截图所示。