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

GitHub Actions中git log仅输出单行?生成Changelog遇异常

GitHub Actions 生成变更日志仅单行及EOF分隔符报错问题解决

问题1:变更日志仅输出单行

你使用的git log --pretty=format:"- %s (%H)"格式里没有显式添加换行符,--pretty=format会严格遵循指定格式输出,每个提交条目之间不会自动换行,所有内容被合并成一行。

解决方法:在format字符串末尾加上%n(代表换行),让每个提交单独占一行:

git log --pretty=format:"- %s (%H)%n" ${{ steps.previous-release.outputs.tag_name }}..HEAD

问题2:必须加echo ""否则EOF报错

原因是git log用--pretty=format且末尾无%n时,输出的最后一行不会以换行符结尾,导致后续的echo 'EOF'内容直接拼接在git log输出的末尾,变成类似- fix bug (abc123)EOF的形式,GitHub Actions无法识别到单独的EOF分隔符,因此报错。

添加echo ""是补了一个换行,让EOF单独成一行才能被正确识别。不过如果已经在git log的format里加了%n,git log的输出最后会自带换行,此时可以去掉多余的echo ""。

修改后的完整步骤

- id: create-changelog
  run: |
    git fetch --all --tags

    {
      echo 'changelog<<EOF'
      git log --pretty=format:"- %s (%H)%n" ${{ steps.previous-release.outputs.tag_name }}..HEAD
      echo 'EOF'
    } >> $GITHUB_OUTPUT

内容的提问来源于stack exchange,提问作者Ero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:12:35