如何获取GIT trailer的值并保存为CI脚本可用的变量
Git Trailer 字段提取解决方案
核心原理
git interpret-trailers --parse 会将输入的提交信息中符合规范的Trailer字段全部输出,每行格式为键: 值,仅需配合基础文本处理工具即可提取指定键对应的值。
操作步骤
1. 验证Trailer解析结果
先执行以下命令查看最新提交的所有可识别Trailer:
git log -1 --pretty=%B | git interpret-trailers --parse
参数说明:
git log -1:取最新1条提交记录--pretty=%B:输出提交的完整原始内容- 管道传递给
git interpret-trailers --parse:过滤并输出所有符合规范的Trailer行
2. 提取指定Trailer值
Bash/Zsh 环境(大部分Linux/macOS CI适用)
使用awk匹配指定键名提取对应值:
# 提取Level字段值 level=$(git log -1 --pretty=%B | git interpret-trailers --parse | awk -F ': ' '$1=="Level" {print $2}') # 提取Platform字段值 platform=$(git log -1 --pretty=%B | git interpret-trailers --parse | awk -F ': ' '$1=="Platform" {print $2}') # 执行业务逻辑 ReImport "$level" "$platform"
PowerShell 环境(Windows CI适用)
使用Select-String匹配过滤:
# 提取Level字段值 $level = (git log -1 --pretty=%B | git interpret-trailers --parse | Select-String '^Level: ').Line -replace '^Level: ', '' # 提取Platform字段值 $platform = (git log -1 --pretty=%B | git interpret-trailers --parse | Select-String '^Platform: ').Line -replace '^Platform: ', '' # 执行业务逻辑 ReImport $level $platform
注意事项
- 需确保提交信息中Trailer和正文之间有至少一个空行,且Trailer格式为
键: 值(冒号后带空格),否则git interpret-trailers无法识别。 - 如果同一个键对应多个Trailer值,上述命令默认取第一个,如需获取所有值可修改文本处理逻辑合并输出。
内容的提问来源于stack exchange,提问作者David Lejeune
相关产品推荐
相关产品推荐

