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
相关产品推荐
相关产品推荐

