如何在Git Log单行输出中标记多行提交消息?
给带多行提交消息的Git日志添加标记
你当前使用的Git日志别名如下:
[alias] ls = log --source --graph --pretty=format:'%C(yellow)%h %Creset[%ad] %s %C(green)[%an]%C(red)%d'
这个别名基于git log --pretty=oneline修改,输出为单行格式,但无法直观判断哪些提交包含主题之外的非空消息体。
要实现给带非空消息体的提交添加标记(比如示例中的^_^),可以修改别名,利用Git的格式化条件判断语法:
[alias] ls = log --source --graph --pretty=format:'%C(yellow)%h %Creset[%ad] %s %C(green)[%an]%C(red)%d%(!%b? %C(blue)^_^ : )'
语法说明
%b:获取提交的消息体内容(主题之后的部分)!%b:判断消息体是否非空%(!%b? <标记内容> : ):如果消息体非空,输出指定标记;否则输出空内容%C(blue):给标记添加蓝色(可根据需求调整颜色)
修改后的日志输出效果如下:
* b928fd3e7aef [2022-11-15] refactor: rename field of Definitions struct [Author Name] (HEAD -> master, origin/master) * ecf0e00d0fc3 [2022-11-15] feat: deserialize definitions into a custom struct [Author Name] * 13651af5e52f [2022-11-15] refactor: change library name [Author Name] ^_^ * 94f6694b43c2 [2022-11-15] feat: add func for making GET requests to api [Author Name] * adf64f3dc2a2 [2022-11-15] feat: add enum for representing operation types [Author Name] * 7df54e9305e7 [2022-11-15] feat: add struct to represent api [Author Name] * 3bde60087494 [2022-11-14] Initial commit [Author Name]
内容的提问来源于stack exchange,提问作者3N4N
相关产品推荐
相关产品推荐

