使用GitHub Actions部署GitPages遇master分支发布错误的规避方案
GitHub Actions部署GitHub Pages规避"Cannot publish on branch master"错误方案
你遇到的Cannot publish on branch master错误,是因为helaili/jekyll-action默认会把构建产物推送到当前触发工作流的分支(也就是master分支),但你的GitHub Pages已配置gh-pages作为活跃分支,同时直接推送到master分支也不符合代码分支与页面分支分离的逻辑。
以下是具体的规避方案:
1. 修改推送触发的工作流配置
编辑.github/workflows/github-pages.yml,明确指定将构建产物推送到gh-pages分支,同时补充完整提交历史的拉取配置(确保Jekyll构建正常),修改后的代码如下:
name: Deploy to GitHub Pages on: push: branches: - master jobs: github-pages: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # 获取完整提交历史,避免Jekyll构建时的历史依赖问题 - uses: helaili/jekyll-action@v2 with: token: ${{ secrets.GITHUB_TOKEN }} target_branch: 'gh-pages' # 指定构建产物推送到gh-pages分支
2. 确认仓库Pages设置
进入你的GitHub仓库Settings页面,找到Pages选项:
- 在Source区域,确保选择的分支是gh-pages(若你的页面文件存放在分支的docs目录,可同时指定目录为/docs)
- 保存设置后,后续推送master分支时,Action会自动将构建产物推送到gh-pages分支,触发Pages更新
注:你的dry-run.yml仅用于PR时的构建检查,不会执行推送操作,当前配置无需修改。
内容的提问来源于stack exchange,提问作者JangHwan.Park
相关产品推荐
相关产品推荐

