是否可以在 git 提交消息中添加某种指令(元符号?),以便它们在git log
输出中显示为彩色?
编辑:我会更具体一点——是否可以在提交消息中用不同的颜色标记几个单词?我想将颜色标记嵌入到提交消息中并通过git log
. 例如,我想让Bug ID显示为红色。有可能有这样的东西吗?
是否可以在 git 提交消息中添加某种指令(元符号?),以便它们在git log
输出中显示为彩色?
编辑:我会更具体一点——是否可以在提交消息中用不同的颜色标记几个单词?我想将颜色标记嵌入到提交消息中并通过git log
. 例如,我想让Bug ID显示为红色。有可能有这样的东西吗?
git config
您可以通过将选项设置为color.ui
来打开彩色输出true
。以下应该工作。
git config --global color.ui true
--pretty=format:".."
然后,您可以使用该选项定义添加颜色的别名。但我认为没有任何类型的自定义匹配。我想这就是你需要为 bug ID 上色的东西。但是,您可以对提交元素进行着色,例如哈希、作者、分支等。
根据您的编辑,您似乎正在寻找一种将格式添加到提交日志消息本身的方法。我将通过说明提交消息在 Git Objects 中存储为纯文本来回答这个问题。因此,理论上,您可以编写一个程序来使用富文本编辑读取和格式化 Git Commit 对象,允许格式化文本,而几乎所有现有程序都仅限于使用纯文本。
话虽如此,您可以将上述--pretty
选项与提交的智能命名结合使用,以使错误 ID 脱颖而出。
git log
可以接受参数--pretty
,它允许您指定格式字符串,您还可以在其中指定参数的颜色。然后,您可以将其别名为新的 shell 命令。看PRETTY FORMAT
这里
查看我的.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
您可以手动进行,例如:
git log --color=always | grep --color=always -C1000 BUG- | less -R
我还没有在这里找到一个答案,为了让颜色代码正确出现在git log
and中git diff
,您可能还需要指定默认 core.pager
设置为使用less
(就像在许多 disto 中一样。)但是,less 不会引导正确的颜色代码,除非您还少提供-r
( raw ) 选项。所以你需要这样做:
git config --global color.ui true
git config --global core.pager 'less -r'