Git Changelog Generator

📝 Git 提交一键生成专业变更日志

从 Git 提交历史自动生成可读变更日志,支持多种输出格式与日期范围筛选。

收藏
8k
安装
1.8k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

git-changelog 是一个轻量级 Bash 脚本工具,用于从 Git 仓库的提交历史中生成结构化的变更日志。无需额外依赖,仅依赖系统自带的 Git 和 Bash 环境。

主要功能

  • 多格式输出:支持 Markdown(默认)、纯文本、JSON 三种格式,满足不同场景需求
  • 灵活的时间范围:可指定起始日期(--since)、结束日期(--until),或自动从上次标签生成
  • 智能检测:自动识别最近的 Git 标签作为起始点,排除合并提交以保持输出简洁
  • 约定式提交解析:自动提取 feat、fix、docs 等 conventional commit 类型,JSON 输出包含完整的提交对象(hash、subject、author、date、type)
  • 分组展示:--group 模式可按提交类型分组(需 Bash 4+)

显著优点

1. 零依赖:纯 Bash 实现,无需安装额外工具或语言运行时
2. 即拿即用:单脚本文件,直接复制到 scripts/ 目录即可运行

3. CI/CD 友好:JSON 格式便于自动化流程消费,纯文本适合邮件通知

4. 向后兼容:自动降级处理(如检测不到标签则使用最近30天)

潜在缺点与局限性

  • Bash 版本限制:--group 功能需要 Bash 4+,macOS 默认 Bash 3.2 需手动升级
  • 无模板定制:输出格式固定,不支持自定义模板或渲染引擎
  • 提交信息依赖:输出质量完全取决于团队是否遵循约定式提交规范
  • 无高级过滤:不支持按作者、文件路径、代码变更量等维度筛选

适合人群

  • 中小型开发团队需要快速生成发布说明
  • 个人开发者维护开源项目的 CHANGELOG.md
  • 构建自动化流水线(CI/CD)中的版本报告环节
  • 希望避免引入重量级工具(如 conventional-changelog Node 生态)的场景

常规风险

  • 脚本注入风险:若仓库路径或日期参数来自外部输入,需确保对特殊字符进行转义
  • 权限问题:脚本需要读取 .git 目录,在受限环境(如某些 CI 容器)可能执行失败
  • 跨平台差异:Bash 4+ 依赖和日期解析行为在不同操作系统上可能有细微差异

Git Changelog Generator 内容

scripts文件夹
手动下载zip · 4.3 kB
changelog.shtext/x-shellscript
请选择文件