GitHub自托管Runner重复创建仓库文件夹,如何避免双层目录结构?
解决GitHub自托管Runner双层仓库文件夹问题
原因
出现双层<repo name>嵌套文件夹,核心问题是actions/checkout动作默认会把代码克隆到当前工作目录下的仓库名称文件夹里,要是你的Runner工作目录本身已经包含仓库名称层级,就会叠出两层。
解决办法
1. 修改工作流的checkout步骤
在你的工作流文件(.github/workflows/下的yml文件)里,给actions/checkout加上path: .参数,让代码直接克隆到Runner工作目录的根目录,不再额外创建仓库名称文件夹:
- name: 拉取代码 uses: actions/checkout@v4 with: path: .
2. 确认Runner工作目录配置
检查你当初配置Runner时的命令,确保--work参数只指定到repos,不要带上仓库名称。正确的配置命令应该是这样的:
config.cmd --url https://github.com/你的用户名/你的仓库名 --token 你的令牌 --work repos
要是之前--work写了repos/你的仓库名,Runner的工作目录本身就带了一层仓库名,再加上checkout默认的路径,自然就会嵌套。
3. 清理现有嵌套目录(可选)
如果已经生成了双层文件夹,直接删掉C:\deploy\repos\<repo name>\<repo name>这个嵌套目录就行,避免后续构建路径混乱。
验证
改完之后重新触发工作流,去C:\deploy\repos目录下看,应该直接是<repo name>文件夹,里面就是仓库内容,不会再出现嵌套结构了。
内容的提问来源于stack exchange,提问作者ELSTADT
相关产品推荐
相关产品推荐

