You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用glab changelog generate显示“no changes”,求助排查问题

解决glab changelog generate返回"No changes"的问题

一、先搞懂glab changelog的核心逻辑

  • 默认基于当前分支生成变更日志,核心是对比「指定标签」和「当前HEAD提交」之间的范围。你指定了-v 1.0.0,但如果仓库没这个标签、或者标签之后没有符合规则的提交,就会显示"No changes"。
  • 只有带Changelog: trailer的提交才会被纳入,且trailer的取值(比如feature/changed)要和配置文件里的分类对应上。

二、一步步排查你的问题

1. 检查标签是否存在

先执行git tag查看仓库里有没有1.0.0标签:

  • 如果没有,先创建并推送标签:
git tag -a 1.0.0 -m "Release 1.0.0"
git push origin 1.0.0
  • 如果已经有1.0.0标签,确认你的测试提交是在这个标签之后提交的——glab只会取指定标签之后到当前HEAD的提交。

2. 确认提交trailer与配置匹配

你的git log显示提交里有Changelog: feature,格式是对的,但要确保.gitlab/changelog_config.yml里有对应的分类。比如配置文件里要包含:

categories:
  - title: Features
    labels:
      - feature

如果配置里没对应上,提交不会被识别。

3. 手动指定提交范围(可选)

如果默认范围不对,可手动指定起始和结束点:

glab changelog generate -v 1.0.0 --from <旧标签/提交哈希> --to HEAD

比如刚打了1.0.0标签,之后提交了测试代码,就用--from 1.0.0 --to HEAD。

三、新仓库的标准配置流程

  1. 初始化changelog配置:在仓库根目录创建.gitlab/changelog_config.yml,参考示例:
categories:
  - title: Features
    labels:
      - feature
  - title: Changed
    labels:
      - changed
  - title: Fixed
    labels:
      - fixed
template: |
  {% for category in categories %}
  ## {{ category.title }}

  {% for entry in category.entries %}
  - {{ entry.title }} ({{ entry.author }})
  {% endfor %}

  {% endfor %}
  1. 规范提交格式:需要纳入changelog的提交必须带Changelog: trailer,两种方式都可以:
# 命令行指定trailer
git commit -m "feat: 添加用户登录功能" --trailer "Changelog: feature"

# 手动在提交信息末尾添加
git commit -m "feat: 添加用户登录功能

Changelog: feature"
  1. 标签与发布流程:
    • 完成一批功能后打版本标签:git tag -a v1.0.0 -m "发布v1.0.0"
    • 推送标签到远程:git push origin v1.0.0
    • 生成changelog:glab changelog generate -v v1.0.0
    • 将生成的内容追加到CHANGELOG.md,提交并推送。

四、验证提交是否被识别

先执行glab changelog list查看当前分支下符合条件的提交,如果能看到你的测试提交,说明规则没问题,再重新生成即可。

内容的提问来源于stack exchange,提问作者Norbert von Panthen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:29:52