是否可以'着色'git日志消息?

时间:2012-07-16 11:28:29

标签: git shell command-line

是否可以在git commit消息中添加某种指令(metasymbols?),因此它们会在git log输出中显示为彩色?

编辑:我会更具体 - 是否可以在提交消息中标记不同颜色的几个单词?我想在提交消息中嵌入颜色标记,并通过git log进行审核。例如,我希望错误ID 显示为红色。有可能有这样的东西吗?

6 个答案:

答案 0 :(得分:3)

您可以通过将git config选项color.ui设置为true来启用彩色输出。以下应该有效。

git config --global color.ui true

然后,您可以使用--pretty=format:".."选项定义添加颜色的别名。但我不认为有任何自定义匹配。我想这就是你需要像bug ID那样的颜色。但是,您可以对哈希,作者,分支等提交元素进行着色。

答案 1 :(得分:1)

git log可以使用参数--pretty,它允许您指定格式字符串,您也可以在其中指定参数的颜色。然后,您可以将其别名为新的shell命令。请参阅PRETTY FORMAT here

答案 2 :(得分:1)

根据您的编辑,您似乎正在寻找一种向提交日志消息本身添加格式的方法。我将通过声明提交消息存储为plain text within Git Objects来回答这个问题。因此,从理论上讲,您可以编写一个程序来使用富文本编辑来读取和格式化Git Commit对象,允许格式化文本,几乎所有现有程序都限于使用纯文本。

话虽这么说,您可以使用上面提到的--pretty选项结合提交的智能命名,以使错误ID突出。

答案 3 :(得分:0)

你可以手动完成,例如用这样的东西:

git log --color=always | grep --color=always -C1000 BUG- | less -R

答案 4 :(得分:0)

查看.gitconfig的第20行和第21行,了解我如何使用颜色自定义git日志。

这是我最喜欢的git别名,用于着色git log。

lg1 = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative

lg = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(bold white)— %an%C(reset)' --abbrev-commit

答案 5 :(得分:0)

我还没有找到答案,为了在git loggit diff中正确显示颜色代码,您可能还需要指定默认 core.pager设置为使用less(与许多disto&#39}一样。)但是,除非您还要更少 -r原始)选项。所以你需要这样做:

git config --global color.ui true
git config --global core.pager 'less -r'