Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >HEXO系列教程 | 使用GitHub Actions部署Hexo / GitHub Pages | 全流程详细介绍

HEXO系列教程 | 使用GitHub Actions部署Hexo / GitHub Pages | 全流程详细介绍

作者头像
夜梦星尘
发布于 2024-08-20 11:25:04
发布于 2024-08-20 11:25:04
54600
代码可运行
举报
运行总次数:0
代码可运行

1. 前言

夜梦敢说这篇文章和HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程是全网最详细的Hexo部署教程之二了!如果遇到问题你可以通过邮箱联系夜梦,夜梦看到了就会回复的!当然,再详细的文章也可能有错误,大家如果发现文章有问题的话请联系夜梦哦!

夜梦曾在HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程中介绍了如何借助GitHub Pages来部署Hexo,但是这篇文章介绍的方法只能够将public文件夹中的内容上传到GitHub(就是纯静态HTML),因此无法使用Qexo来进行动态管理。省流:默认部署方式是Deploy from a branch(以分支部署):

所以这篇文章,夜梦将介绍部署Hexo的另一种方式——借助GitHub Actions部署GitHub Pages。本地部署的方法和夜梦之前写的文章一样,所以这里就直接复制了~

具体可以看官方文档(说实在的这文档有点……一言难尽):在 GitHub Pages 上部署 Hexo | Hexo

2. 准备Hexo

部署Hexo可以参考夜梦的这篇文章的第2节至第5节只需要到第5节!!!):HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程。因为流程一致,夜梦在这篇文章中不再赘述了。

接下来我们要做的就和夜梦前面写的这篇文章不一样了。前面这篇教程仅需要public/这个文件夹下的内容上传到GitHub中,而利用GitHub Actions部署则不需要上传public/这个文件夹。

简而言之,这篇文章介绍的方法,不需要你在本地生成public文件夹,也就是不需要执行hexo c/hexo g/hexo d等命令。当然夜梦建议你本地执行一下,先看看效果,然后再上传到github中。

3. 首次将gh-pages分支push到GitHub

在本地Hexo仓库(HEXO文件夹)打开git命令界面(Git Bash),初始化仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git init

切换到gh-pages分支:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git checkout -b gh-pages

添加文件到暂存区,将项目目录中的所有文件添加到 Git 的暂存区:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add .

提交更改,提交所有添加的文件,生成一个提交记录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git commit -m "这是第一次提交Hexo"

复制 GitHub 仓库的 URL: 在浏览器中打开你的 GitHub 仓库,点击 Code 按钮,然后复制仓库的 HTTPS 或 SSH 地址。

然后运行下面的命令,将本地仓库与GitHub仓库关联

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git remote add origin <GitHub仓库的URL>

将本地仓库的内容推送到GitHub仓库gh-pages分支:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push -u origin gh-pages

如果是第一次推送,这个命令会将本地分支与远程分支关联,并推送所有内容。

如果你的Github仓库中已经有文件了,那夜梦建议你直接强制推送本地仓库到GitHub中(运行过上面那行命令就不要运行下面这行命令了!):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push --force origin gh-pages

4. 创建 Workflow

我们在GitHub的Hexo仓库中,找到Settings->Pages->Build and deployment,将source选择为GitHub Actions

等待它设置完成以后,我们选择Create your own(自己创建一个workflow文件)。在配置这个文件之前,我们先查看一下我们自己电脑上的Node.js版本。

然后将Node.js的版本替换为上个步骤中记下的版本,具体位置可以看夜梦的图示:

修改完成以后,就可以把这个配置文件复制到workflow配置文件中了(记得命名为pages.yml)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name: Pages

on:
  push:
    branches:
      - gh-pages # 我们设置的分支是 gh-pages

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          # If your repository depends on submodule, please see: https://github.com/actions/checkout
          submodules: recursive
      - name: Use Node.js 20
        uses: actions/setup-node@v4
        with:
          # Examples: 20, 18.19, >=16.20.2, lts/Iron, lts/Hydrogen, *, latest, current, node
          # Ref: https://github.com/actions/setup-node#supported-version-syntax
          node-version: "20.11.1"
      - name: Cache NPM dependencies
        uses: actions/cache@v4
        with:
          path: node_modules
          key: ${{ runner.OS }}-npm-cache
          restore-keys: |
            ${{ runner.OS }}-npm-cache
      - name: Install Dependencies
        run: npm install
      - name: Build
        run: npm run build
      - name: Upload Pages artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: ./public
  deploy:
    needs: build
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

5. 再次将gh-pages分支push到GitHub

5.1 第二次push

由于我们在第4节中创建了workflow文件,而我们本地没有,所以我们需要pull一下,把GitHub上建立的workflow拉到本地。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git pull origin gh-pages

然后再进行第二次推送。添加所有更改的文件(当然你也可以选着添加,夜梦这里就不介绍了):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add .

提交你所做的更改(方便看,相当于就是备注):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git commit -m "夜梦又更新hexo了"

推送:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin gh-pages

5.2 第三次以及以后的push

添加所有更改的文件(当然你也可以选着添加,夜梦这里就不介绍了):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git add .

提交你所做的更改(方便看,相当于就是备注):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git commit -m "夜梦又更新hexo了"

推送:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin gh-pages

6. 常见报错

下面的报错是夜梦在尝试的时候遇到的,也给大家分享一下,一起避坑……

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
error: src refspec gh-pages does not match any

解决方法如下(由ChatGPT生成,夜梦已经验证了可行性):

1、本地没有创建 gh-pages 分支 你可能正在尝试将 gh-pages 分支推送到远程仓库,但本地并没有创建该分支。 解决方法:

  1. 创建 gh-pages 分支: 你可以通过以下命令从现有的分支(例如 mainmaster)创建 gh-pages 分支:
代码语言:txt
AI代码解释
复制
git checkout -b gh-pages

这会基于当前分支创建一个新的 gh-pages 分支,并切换到该分支。

  1. 推送 gh-pages 分支到远程仓库:
代码语言:txt
AI代码解释
复制
git push origin gh-pages

2、本地分支还没有任何提交

如果你已经创建了 gh-pages 分支,但没有任何提交记录,那么 Git 会认为该分支不存在,从而导致错误。

解决方法:

  1. gh-pages 分支上提交一些更改:
代码语言:txt
AI代码解释
复制
git checkout gh-pages    touch index.html  # 创建一个简单的文件    git add index.html    git commit -m "Initial commit on gh-pages"
  1. 推送 gh-pages 分支到远程仓库:
代码语言:txt
AI代码解释
复制
git push origin gh-pages

3、推送分支的名称错误

你可能错误地指定了分支名称,例如拼写错误或分支不存在。

解决方法:

  1. 检查分支名称: 确保你推送的分支名称拼写正确,并且该分支在本地已经存在。
代码语言:txt
AI代码解释
复制
git branch  # 查看所有本地分支
  1. 推送正确的分支: 如果你的分支名称是正确的并且存在,确保使用正确的命令推送:
代码语言:txt
AI代码解释
复制
git push origin gh-pages

通过这些步骤,你应该能够解决 src refspec gh-pages does not match any 错误并成功推送到远程仓库。

7. 进阶使用

配置YUN主题:

发布文章:

使用自己的域名

8. 声明

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=ix9n9rnuq63i

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-8-12 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程
夜梦曾经转载过一篇文章。这篇文章中写了如何在GitHub上面部署自己的静态博客hexo。
夜梦星尘
2024/08/20
6160
HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程
使用 Github Actions 自动部署 Angular 应用到 Github Pages
最近在学习 Angular,一些基础的语法也学习的差不多了,就在 github 上新建了一个代码仓库,准备用 ng-zorro 搭个后台应用的模板,方便自己以后写些小东西时可以直接使用。前端项目,最主要的还是能够实际看到,因此考虑找个地方部署,因为自己的博客是部署到 github page 上的,并且这个项目也只是一个静态网站,所以这里同样选择使用 github page
程序员宇说
2020/07/21
1.7K0
使用 Github Actions 自动部署 Angular 应用到 Github Pages
GitHub Actions 自动构建Hexo 并发布到 gh-pages
当文章较多时,Hexo生成较慢,比较耗时,而且还需要 手动发布到 gh-pages,过程比较繁琐,而 GitHub Actions 作为 GitHub推出的免费CI/CD服务,正好可以用来解决这一问题,我们只需将源代码推送到GitHub,由Action自动帮我们构建Hexo,并完成发布到 GitHub Pages,不仅可用于博客,也可用于自动发布在线文档。
yiyun
2022/04/01
1.4K0
GitHub Actions 自动构建Hexo 并发布到 gh-pages
【Hexo】使用Hexo+github pages+travis ci 实现自动化部署
本系列文章将会详细说明使用 Hexo + github pages 来搭建个人博客,并对主题进行配置,然后使用 travis ci 来进行自动化部署的全过程。
弗兰克的猫
2020/05/09
8960
【Hexo】使用Hexo+github pages+travis ci 实现自动化部署
Hexo+GitHub搭建个人博客,实现云端编辑、一键发文
一般来说第一步环境搭建只需要在最开始创建博客网站的时候进行,写文的话只需要重复第2-7步就可以了,这种使用方式强烈依赖于本地环境。但是,有时候我们并不只是固定在一台电脑上写文,(比如:一直写文的电脑坏了,需要换新电脑;电脑重装系统等等)这样就需要在另一台电脑上搭建环境,这样非常的麻烦,而且难免会带来一些其它依赖版本兼容问题。所以,可以采用GitHub Actions持续集成平台来简化发布文章的流程。
甜点cc
2022/09/23
1.4K0
Hexo+GitHub搭建个人博客,实现云端编辑、一键发文
Github Actions自动化部署 hexo博客
利用 GitHub Actions 实现博客自动发布,将静态博客页面部署到多个服务器上,比如 GitHub Pages、Gitee pages 、云服务器上。本文介绍使用 GitHub Actions 实现将 Hexo 博客自动编译并发布到 GitHub Pages 上。
leader755
2022/03/09
9810
Github Actions自动化部署 hexo博客
【Hexo自动部署】优雅的使用 Github Actions 进行 Hexo 静态博客的持续集成与部署
  由于没有自己的云服务器,所以我之前选择博客工具的时候排除了Typora、Wordpress…转而选择了 Hexo,但其实相较于前者,Hexo 的云端写作体验一直很糟糕。   随着近两年 CI/CD、DevOps 这些概念的流行,很多工具都火了起来,像 Jenkins、Github的好基友Travis等等,但这些都不太适用我们的情况,Jenkins 也需要自己的服务器,而TravisCI我也测试了一下,本来是适用的,也很方便,但是官方宣布后续不再免费,只赠送 10000 积分用完即止,开通付费版则要 69刀/月 [俺支持不起,倒不如整一个云服务器,大佬请随意!]。   但是我偶然了解到全球最大的同性交友网站丢出了一个重磅炸弹-Github Actions,我发现利用此功能可以完美解决 Hexo 静态博客自动部署的问题,并且免费版每月赠送2000分钟的时长,完美!
老猫-Leo
2023/12/11
3.4K0
【Hexo自动部署】优雅的使用 Github Actions 进行 Hexo 静态博客的持续集成与部署
一文教你使用GitHub Pages部署静态网页
在上一篇文章部署明星关系图谱那些事儿(GitHub Pages) 的最后,古柳讲到了GitHub Pages不仅可以用来搭个人博客,而且能单独部署静态网页(HTML/CSS/JS,而不涉及后端),鉴于自身在部署明星关系图谱时,查阅的几篇中文博客内容(可能没搜对关键词的缘故)都不太能解答我关于实操过程的困惑,最后还得感谢这篇简洁明了的英文文章:Use Github Static Pages to Host Your Front End Projects,助我成功部署,所以古柳也简单讲下实践步骤,希望能帮到有需要的人,对GitHub和Git熟悉的朋友直接拉到Git命令处即可,或者看原文也行。
古柳_DesertsX
2019/06/19
1.5K0
一文教你使用GitHub Pages部署静态网页
利用 GitHub Action 自动部署 Hexo 博客
使用 Hexo 写博客,每次写完都要生成静态文件,而且 Hexo 基于 Node.JS,不能再手机上更新。
OhhhCKY
2022/12/28
1.5K0
利用 GitHub Action 自动部署 Hexo 博客
打造Github Issue到Hexo部署自动工作流
平时不少同学都有写博客的习惯,这里介绍一种通过Github Issue写博客并自动部署hexo到Github Page的工作流。本文主要介绍
ACK
2022/05/06
4510
打造Github Issue到Hexo部署自动工作流
github网站部署
如果你想记录生活、抒发情感、分享见解,这一切都离不开一个可以承载文字的平台,一个独立的、由自己掌控的平台,而 GitHub Pages 就是这么一个平台。
IT小马哥
2024/09/29
5620
github网站部署
HEXO系列教程 | 将Qexo接入Hexo,实现静态博客的动态管理!
在前面的文章中,夜梦已经介绍了如何使用GitHub Actions部署自己的Hexo博客,这篇文章夜梦将为大家介绍一下如何把Qexo这一强大的博客管理工具接入到Hexo中,让我们的静态博客管理变得更加生动、便捷。相关文章:
夜梦星尘
2024/09/01
5270
HEXO系列教程 | 将Qexo接入Hexo,实现静态博客的动态管理!
利用Github Actions来部署Hexo
Hexo在本地运行时,每次都需要运行一套命令(hexo cl,hexo g,hexo d,hexo s),而且上传时长抽风(长期大量上传文件),本地基础文件又容易丢失。所以,我用github Actions来修补以上问题。 最开始很多关于github actions的文章大多没啥用,运行也会报错什么的。这里使用https://cloud.tencent.com/developer/article/2369534的教程。 我简单来描述教程,尽量多写代码,少文字。因为文字实在是太多,有的文章的看着很烦。 首先你需要准备: 1.新github闭源仓库一个(没有hexo d到库过的得还要个开源仓库) 2.(可有可无)Github desktop软件一个+github加速器(或改host host文件下载链接:https://raw.hellogithub.com/hosts) 3.配置好的hexo源文件一份 4.github tokens一份(新版github已改为Github => Settings => Developer settings => Tokens (classic) => Generate new token => Generate new token (classic)
诺依阁
2025/02/28
1510
教你如何从零开始搭建一个属于自己的网站
但我不希望它仅仅是一个博客,而是能够成为一个处于自己现实生活之外、自由、实验、不用畏惧他人眼光甚至可以独断专行的地方。
云游君
2020/04/06
3.6K0
GitHub Actions入门教程:自动化部署静态博客
前天,我使用 GitHub Actions 实现了静态博客的自动化部署,觉得它非常强大,只要你提交到 GitHub,后面的部署完全由 GitHub 自动完成。
somenzz
2021/02/08
1.7K0
[原创]VuePress教程之部署到Github Action
最近geekzl打算尝试一下VuePress,据说如果用来做文档体验会很不错,外观和Gitbook有点相似,好处是代码层面具有较大的自由度,也可以顺便加强vue的学习。
极客中心
2021/01/21
2.9K0
[原创]VuePress教程之部署到Github Action
Hugo搭建博客(二)— Hugo+Github Pages搭建博客
使用Hugo已经把博客搭建好了,那应该部署到哪里呢?可以使用VPS、云服务器等,我使用的是Github Pages,免费而且也很好用!
程序员酷森
2020/10/19
2.2K0
Hugo搭建博客(二)— Hugo+Github Pages搭建博客
使用 GitHub Actions 实现自动化协作与部署流程
在开发过程中,自动化工具不仅限于持续集成和持续交付(CI/CD),还可以扩展到代码审查、部署、任务管理等多个环节。在本文中,我将以
VyrnSynx
2025/01/03
2780
来认真学一下,项目部署到 github pages
本文主要分享基于 vite 创建的前端项目如何部署到 github pages 上。你也可以参考其中的内容部署别的前端静态项目。
用户6901603
2024/07/25
7480
来认真学一下,项目部署到 github pages
Vuepress + GitHub Actions 实现博客自动部署!
正常我们利用 Vuepress 搭建一个文档博客之后,往往都是通过如下步骤来部署一篇博客:
村雨遥
2022/03/14
1.5K1
Vuepress + GitHub Actions 实现博客自动部署!
相关推荐
HEXO系列教程 | 使用GitHub部署静态博客HEXO | 小白向教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验