GitHub Action中执行git log获取分支首条提交信息报错如何解决
问题原因
GitHub Actions 官方的 actions/checkout 动作默认执行浅克隆,默认拉取深度仅为1,且不会拉取工作流触发分支之外的其他分支提交记录,因此Git无法识别main和myfeaturebranch两个分支的提交区间,触发未知修订版本报错。
解决步骤
- 第一步:调整checkout动作配置,拉取全量提交历史
修改你的工作流yaml文件中checkout步骤的参数,拉取完整提交记录而非浅克隆:
- uses: actions/checkout@v4 with: fetch-depth: 0
- 第二步:执行git log前先拉取全部分支的最新远程记录
在run脚本中执行git log命令前,先运行如下命令同步所有远程分支到本地:git fetch origin +refs/heads/*:refs/remotes/origin/* - 第三步:修改git log命令指定远程分支前缀,避免歧义
将原命令中的分支名替换为远程分支的完整引用,命令如下:git log origin/main..origin/myfeaturebranch --reverse --pretty=%s
执行完以上调整后即可正常获取目标分支的提交信息列表。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

