GitHub Actions执行git checkout refs/pull/3/merge时退出码1错误排查
问题原因与解决方案
错误原因
你遇到的git checkout refs/pull/3/merge执行失败,是因为配置的actions/checkout@v2使用了fetch-depth: 2的浅克隆设置——该设置仅拉取最近2个提交,并未包含PR相关的特殊引用(如refs/pull/*/merge),导致salsify/action-detect-and-tag-new-version无法找到对应的合并分支引用。
修复方案
修改ci.yml中的actions/checkout步骤,移除浅克隆限制,改为完整克隆仓库:
- uses: actions/checkout@v2 with: fetch-depth: 0 # 完整克隆仓库,包含所有引用与历史提交
或者针对PR场景,直接指定检出PR的合并提交,同时确保完整克隆:
- uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.merge_commit_sha }} fetch-depth: 0
补充说明
salsify/action-detect-and-tag-new-version需要读取仓库的完整历史标签与分支上下文来检测新版本,浅克隆会丢失这些必要信息,因此必须使用完整克隆(fetch-depth: 0)才能让该Action正常工作。
内容的提问来源于stack exchange,提问作者Lenny4
相关产品推荐
相关产品推荐

