如何生成适配项目发布说明的Git提交记录?有对应脚本或工具吗
Git 发布说明生成方案
现有工具选择
- conventional-changelog:适配约定式提交规范,支持自定义模板,可直接输出分类后的提交列表,自动提取提交哈希、关联模块、PR编号等信息。
- git-cliff:轻量命令行工具,通过配置文件可完全自定义输出格式,即使项目没有统一提交规范也可以通过规则匹配做分类聚合。
- release-please:支持自动版本管理 + 发布说明生成,内置分类规则可按需调整。
轻量Shell脚本实现
如果不想引入额外依赖,可直接使用以下自定义脚本,修改过滤规则即可匹配你需要的输出格式:
#!/bin/bash # 调用方式:./gen-release.sh <上个版本tag> <当前版本/HEAD> PREV_TAG=$1 CUR_VER=${2:-HEAD} # 自定义格式可修改--pretty参数 LOG_FORMAT=" - %h [%an] %s" echo "破坏性变更(BREAKING CHANGES):" git log --pretty=format:"$LOG_FORMAT" $PREV_TAG..$CUR_VER | grep -i "break\|deprecat\|废弃\|移除" echo -e "\n新功能(Features):" git log --pretty=format:"$LOG_FORMAT" $PREV_TAG..$CUR_VER | grep -i "feat\|新增\|feature" echo -e "\n问题修复(Bug fixes):" git log --pretty=format:"$LOG_FORMAT" $PREV_TAG..$CUR_VER | grep -i "fix\|bug\|修复" echo -e "\n文档更新(Documentation):" git log --pretty=format:"$LOG_FORMAT" $PREV_TAG..$CUR_VER | grep -i "doc\|readme\|文档" echo -e "\n其他变更(Other changes):" git log --pretty=format:"$LOG_FORMAT" $PREV_TAG..$CUR_VER | grep -v -i "break\|deprecat\|废弃\|移除\|feat\|新增\|feature\|fix\|bug\|修复\|doc\|readme\|文档"
内容的提问来源于stack exchange,提问作者Ankur Loriya
相关产品推荐
相关产品推荐

