GitHub Actions拉取其他分支文件失败:pathspec匹配错误
问题解决办法
问题根源
触发Workflow的是yamlTesting分支,actions/checkout默认只会检出当前触发的分支,即便设置了fetch-depth: 0,本地也没有创建main分支的本地引用,直接执行git checkout main -- test.py会找不到对应的分支引用,从而报错。
修复方案
下面两种方法任选其一即可解决问题:
方案1:先创建本地main分支引用
在执行文件checkout操作前,先拉取远程main分支到本地,生成本地分支引用:
- name: git run: | git --version git config user.name "Username" git config user.email "email@gmail.com" git status # 拉取远程main分支,创建本地main分支引用 git fetch origin main:main git checkout main -- test.py
方案2:直接从远程分支拉取文件
无需创建本地分支,直接指定远程分支路径拉取目标文件:
- name: git run: | git --version git config user.name "Username" git config user.email "email@gmail.com" git status # 直接从远程origin/main分支拉取test.py git checkout origin/main -- test.py
额外注意事项
- 确认仓库确实存在
main分支(GitHub分支名称区分大小写,注意拼写一致) - 确认
test.py确实位于main分支的根目录下,路径没有层级错误
内容的提问来源于stack exchange,提问作者imsamson
相关产品推荐
相关产品推荐

