4

是否可以在 git 提交消息中添加某种指令(元符号?),以便它们在git log输出中显示为彩色?

编辑:我会更具体一点——是否可以在提交消息中用不同的颜色标记几个单词?我想将颜色标记嵌入到提交消息中并通过git log. 例如,我想让Bug ID显示为红色。有可能有这样的东西吗?

4

6 回答 6

3

git config您可以通过将选项设置为color.ui来打开彩色输出true。以下应该工作。

git config --global color.ui true

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

于 2012-07-16T14:36:09.617 回答
1

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

话虽如此,您可以将上述--pretty选项与提交的智能命名结合使用,以使错误 ID 脱颖而出。

于 2012-07-16T20:28:42.353 回答
1

git log可以接受参数--pretty,它允许您指定格式字符串,您还可以在其中指定参数的颜色。然后,您可以将其别名为新的 shell 命令。看PRETTY FORMAT 这里

于 2012-07-16T11:39:03.977 回答
0

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

这是我最喜欢的两个 git 别名,它们为 git 日志着色。

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

于 2014-04-01T17:29:45.560 回答
0

您可以手动进行,例如:

git log --color=always | grep --color=always -C1000 BUG- | less -R
于 2012-07-16T22:09:05.690 回答
0

我还没有在这里找到一个答案,为了让颜色代码正确出现在git logand中git diff,您可能还需要指定默认 core.pager设置为使用less(就像在许多 disto 中一样。)但是,less 不会引导正确的颜色代码,除非您还提供-r( raw ) 选项。所以你需要这样做:

git config --global color.ui true
git config --global core.pager 'less -r'
于 2016-11-17T22:24:06.307 回答