git log --pretty=format 常用选项参数 【汇总】(比官方还全)
选项参数语法:
--pretty=format:%ae
详细使用教程:https://www.cnblogs.com/wutou/p/17490984.html
--pretty=format控制显示信息的颜色:https://www.cnblogs.com/wutou/p/17536218.html
注意:某些参数,老版本 git 可能不支持
选项(参数) | 说明 | 速记(备注、示例) |
---|---|---|
%H | 提交的完整哈希值(40位ID值) | commit hash |
%h | 提交的简写哈希值(8位ID值) | Abbreviated commit hash |
%T | 树的完整哈希值 | tree hash |
%t | 树的简写哈希值 | Abbreviated tree hash |
%P | 父提交的完整哈希值 | Parent hashes |
%p | 父提交的简写哈希值 | Abbreviated parent hashes |
%an | 作者(author)的名字 | |
%aN | mailmap中对应的作者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1)) | |
%ae | 作者邮箱 | |
%aE | 作者邮箱 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1)) | |
%ce | 提交者 email | |
%cE | 提交者 email (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1)) | |
%ad | 日期 (–date= 制定的格式) | Thu Aug 3 10:33:01 2023 +0800 |
%aD | 日期, RFC2822格式 | Thu, 3 Aug 2023 10:33:01 +0800 |
%ah | 提交星期、月、日、时、分 | Wed Jun 28 18:24 |
%ch | 提交星期、月、日、时、分 | Wed Jun 28 18:24 |
%ar | 日期, 相对格式(1 day ago) | 8 天前 |
%at | 日期, UNIX timestamp | 1691029981 |
%ai | 日期, ISO 8601 格式 | 2023-08-03 10:33:01 +0800 |
%aI | 日期 | 2023-06-28T18:24:01+08:00 |
%as | 提交日期 | 2023-09-13 |
%cs | 提交日期 | 2023-09-13 |
%cd | 提交日期 (--date= 制定的格式) | Thu Aug 3 10:33:01 2023 +0800 |
%cD | 提交日期, RFC2822格式 | Thu, 3 Aug 2023 10:33:01 +0800 |
%ci | 提交日期, ISO 8601 格式 | 2023-08-03 10:33:01 +0800 |
%cI | 提交日期 | 2023-06-28T18:24:01+08:00 |
%cr | 提交日期, 相对格式(1 day ago) | 8 天前 |
%ct | 提交日期, UNIX timestamp(从1970年1月1日起走过的秒数) 换算方法:1687947841/60秒/60分/24小时/365天,约等于 53.6年 |
1687947841(2023-06-28 18:24:01) |
%al | 提交者名字 Author | |
%an | 提交者名字 Author | |
%cl | 提交者名字 Author | |
%cn | 提交者(committer)的名字 | |
%cN | 提交者名字 (.mailmap对应,详情参照git-shortlog(1)或者git-blame(1)) | |
%d | 显示ref,分支、tag 名称,带括号 | (HEAD -> refs/heads/n) |
%D | 显示ref,分支、tag 名称,不带括号 | HEAD -> refs/heads/n |
%e | encoding | |
%s | 提交说明,单行显示 | subject |
%S | HEAD | |
%B | 提交说明,多行显示,保留回车换行 | subject |
%b | commit信息内容 | |
%f | 提交说明第一行内容(中文不显示)。过滤commit信息的标题使之可以作为文件名 | |
%N | commit notes | |
%n | 换行(打印 空行) | |
%gD | reflog selector, e.g., refs/stash@ | |
%gd | shortened reflog selector, e.g., stash@ | |
%gE | ||
%gN | ||
%gs | reflog subject | |
%GF | ||
%GG | ||
%GK | ||
%GP | ||
%GS | ||
%GT | ||
%m | 左,右或边界标记。left, right or boundary mark | > |
%% | a raw % | |
%x00 | print a byte from a hex code | |
%w([<w>[,<i1>[,<i2>]]]) | switch line wrapping, like the -w option of git-shortlog(1). | |
%<|(num) | 设置占位宽度,左对齐 | 设置提交时间占用19字符宽度:%<|(19)%as |
%>|(num) | 设置占位宽度,右对齐 | 设置提交时间占用19字符宽度:%>|(19)%as |
%<(N, trunc) | 下一个单元的输出宽度限制为N列, 左对齐 | |
%<|(N, trunc) | 下一个单元输出至全局第N列, 左对齐 | |
%> | 右对齐 | |
%> | 右对齐 | |
%>> | 右对齐 (如果左边有多余空格则复用) | |
%>< | 居中对齐 | |
%x08 | 即\b | 为了把截断产生的"."删除 |
git log -xx --xxxx 参数【汇总】 https://www.cnblogs.com/wutou/p/17581606.html
遍历
有些变量,官方并没有提供,只能遍历出值,来确定作用
for i in {a..z};do for j in {a..z};do echo "$i$j=$(git log -1 --pretty=format:%$i$j)"; done; done
for i in {a..z};do for j in {A..Z};do echo "$i$j=$(git log -1 --pretty=format:%$i$j)"; done; done
for i in {A..Z};do for j in {A..Z};do echo "$i$j=$(git log -1 --pretty=format:%$i$j)"; done; done
为什么不直接用{a..Z}? 因为会报错,所以只能分开
Git 官方说明大全:
中文版:https://git-scm.com/book/zh/v2/Git-基础-查看提交历史#pretty_format
英文版:https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
https://git-scm.com/docs (git 官方 docs 说明大全,英文版)
http://static.kancloud.cn/apachecn/git-doc-zh/ (看云-Git中文参考)