通过命令行git log获取各种提交信息
文章发布较早,内容可能过时,阅读注意甄别。
git log 命令可以提供给我们很多代码提交的信息,通过一些格式化,我们能够更加优雅的得到对应的信息:
git log --pretty=format:"%h"
git 用各种 placeholder 来决定各种显示内容:
- %H: commit hash
- %h: 缩短的 commit hash
- %T: tree hash
- %t: 缩短的 tree hash
- %P: parent hashes
- %p: 缩短的 parent hashes
- %an: 作者名字
- %aN: mailmap 的作者名字 (.mailmap 对应,详情参照git-shortlog(1) (opens new window)或者git-blame(1) (opens new window))
- %ae: 作者邮箱
- %aE: 作者邮箱 (.mailmap 对应,详情参照git-shortlog(1) (opens new window)或者git-blame(1) (opens new window))
- %ad: 日期 (–date= 制定的格式)
- %aD: 日期, RFC2822 格式
- %ar: 日期, 相对格式 (1 day ago)
- %at: 日期, UNIX timestamp
- %ai: 日期, ISO 8601 格式
- %cn: 提交者名字
- %cN: 提交者名字 (.mailmap 对应,详情参照git-shortlog(1) (opens new window)或者git-blame(1) (opens new window))
- %ce: 提交者 email
- %cE: 提交者 email (.mailmap 对应,详情参照git-shortlog(1) (opens new window)或者git-blame(1) (opens new window))
- %cd: 提交日期 (–date= 制定的格式)
- %cD: 提交日期, RFC2822 格式
- %cr: 提交日期, 相对格式 (1 day ago)
- %ct: 提交日期, UNIX timestamp
- %ci: 提交日期, ISO 8601 格式
- %d: ref 名称
- %e: encoding
- %s: commit 信息标题
- %f: sanitized subject line, suitable for a filename
- %b: commit 信息内容
- %N: commit notes
- %gD: reflog selector, e.g., refs/stash@{1}
- %gd: shortened reflog selector, e.g., stash@{1}
- %gs: reflog subject
- %Cred: 切换到红色
- %Cgreen: 切换到绿色
- %Cblue: 切换到蓝色
- %Creset: 重设颜色
- %C(…): 制定颜色, as described in color.branch.* config option
- %m: left, right or boundary mark
- %n: 换行
- %%: a raw %
- %x00: print a byte from a hex code
- %w([[,[,]]]): switch line wrapping, like the -w option of git-shortlog(1).
当前在 Jenkins 的应用中,通过如下方式,在项目拉完代码之后对一些信息进行了提取:
// 提交ID
env.COMMIT_ID = sh(script: 'git log --pretty=format:%h', returnStdout: true).trim()
// 提交者
env.COMMIT_USER = sh(script: 'git log --pretty=format:%an', returnStdout: true).trim()
// 提交时间
env.COMMIT_TIME = sh(script: 'git log --pretty=format:%ai', returnStdout: true).trim()
// 提交信息
env.COMMIT_INFO = sh(script: 'git log --pretty=format:%s', returnStdout: true).trim()
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
这个信息可以在通知,以及更改构建信息都可以用到,便于运维开发测试一起核对。
上次更新: 2024/11/28, 21:21:13