核心用法
git-changelog 是一款基于 Git 历史自动生成格式化变更日志的自动化工具。该技能通过解析符合 Conventional Commits 规范的提交信息,将代码变更自动归类为 Features、Bug Fixes、Documentation 等 12 个标准类别,并输出精美的 Markdown 格式日志。
主要功能流程:
1. 仓库验证 — 确认当前目录为 Git 工作区
2. 范围确定 — 支持标签对比、日期范围、最近 N 条提交或自动检测自上次标签以来的变更
3. 提交提取 — 使用格式化日志输出获取提交哈希、主题、作者和日期
4. 智能分类 — 依据 type(scope): description 模式解析提交前缀,匹配预设类别
5. Markdown 生成 — 按优先级排序(Features → Fixes → 其他),包含作用域加粗、短哈希引用,自动检测 BREAKING CHANGE 并置顶
6. 灵活输出 — 默认聊天预览,可追加写入 CHANGELOG.md
显著优点:
- 完全自动化,大幅减少手动维护变更日志的工作量
- 严格遵循 Conventional Commits 标准,与现代 CI/CD 流程无缝集成
- 智能识别破坏性变更(
!标记或 BREAKING CHANGE 文本) - 支持 Monorepo 场景的路径过滤
- 优雅处理边缘情况(无标签、无约定式提交、空范围等)
潜在缺点与局限性:
- 高度依赖团队严格执行 Conventional Commits 规范,非规范提交将被归入 "Other" 类别
- 不支持自动生成版本号或语义化版本推荐,需人工指定标签范围
- 对合并提交的默认过滤策略可能遗漏某些重要变更记录
- 仅支持 Git 版本控制系统
适合人群:
- 维护开源项目或商业产品的技术团队负责人
- 需要频繁发布版本的 DevOps 工程师
- 追求自动化文档流程的敏捷开发团队
- 使用 GitHub/GitLab Releases 功能进行版本管理的项目
常规风险:
- 若团队提交规范不统一,生成的日志质量会显著下降,分类混乱
- 自动写入 CHANGELOG.md 存在文件权限或并发写入冲突风险
- 破坏性变更检测依赖提交信息中的特定文本,可能被遗漏
- 大型仓库的完整历史扫描可能产生性能开销,建议配合范围参数使用