You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从gh-pages分支加载命名为example.github.io的GitHub站点?

解决.github.io仓库无法从gh-pages分支加载站点的问题

嘿,这个问题其实是GitHub Pages的特殊命名规则在搞鬼——当你的仓库名字正好是<你的GitHub用户名>.github.io时,GitHub默认会从**主分支(main/master)**部署你的站点,而不是常规项目用的gh-pages分支。不过别担心,有两种简单的方法能让你切换到gh-pages分支来加载站点:

方法一:直接修改GitHub Pages的部署源

这是最直接的解决方案,不需要调整仓库结构:

  • 首先确保你已经在仓库里创建并推送了gh-pages分支(如果还没创建,本地执行以下命令:
    git checkout -b gh-pages
    # 将你的站点文件放入该分支,然后提交推送
    git add .
    git commit -m "Initialize gh-pages branch for site deployment"
    git push origin gh-pages
    
  • 打开你的GitHub仓库页面,点击顶部的「Settings」选项卡
  • 在左侧菜单找到「Pages」选项,进入页面设置界面
  • 在「Source」区域的下拉菜单里,把默认的「Branch: main / root」改成「Branch: gh-pages / root」(如果你的站点文件存放在gh-pages分支的子目录,比如docs,就选择对应的目录)
  • 点击「Save」按钮,等待几分钟,GitHub就会自动从gh-pages分支重新部署你的站点了

方法二:用GitHub Actions自动同步部署(适合源码与站点分离的场景)

如果你的主分支存放的是站点源码(比如Hexo、Vue项目的源代码),想要自动把构建后的产物推到gh-pages分支部署,可以这么做:

  • 先创建并推送gh-pages分支(步骤同方法一)
  • 在主分支的.github/workflows目录下创建一个部署脚本,比如deploy.yml,示例内容如下:
    name: Deploy to GitHub Pages
    on:
      push:
        branches: [ main ]
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          # 根据你的项目添加构建步骤,比如Hexo项目可执行npm install && npm run build
          - name: Build site
            run: |
              npm install
              npm run build
          - name: Deploy to gh-pages
            uses: peaceiris/actions-gh-pages@v4
            with:
              github_token: ${{ secrets.GITHUB_TOKEN }}
              publish_dir: ./dist # 替换为你的构建产物目录
    
  • 提交并推送这个配置文件到主分支,GitHub Actions会在每次推送主分支时,自动将构建后的文件推送到gh-pages分支,同时你需要按照方法一的步骤,把Pages的部署源设置为gh-pages分支

另外,如果是本地无法切换到gh-pages分支,大概率是本地仓库没有拉取远程的gh-pages分支,执行git fetch origin拉取所有远程分支后,再运行git checkout gh-pages就能顺利切换了。


内容的提问来源于stack exchange,提问作者Omid Nikrah

火山引擎 最新活动