从零开始,到自动部署、自定义域名、Cloudflare、换电脑迁移、常见报错排查,一篇讲清楚。
一、为什么用 Hexo + GitHub Actions?
- ✅ 免费
- ✅ 全自动部署
- ✅ 不需要服务器
- ✅ 支持自定义域名 + HTTPS
- ✅ 支持 Cloudflare CDN
- ✅ 可多设备协作
推荐架构(2026 官方方式):
1 2 3
| main 分支:Hexo 源码 GitHub Actions:自动构建 GitHub Pages:自动发布
|
不再需要 gh-pages 分支,不再手动 push public。
二、初始化 Hexo 项目
1️⃣ 安装环境
检查:
1 2 3
| node -v npm -v git --version
|
2️⃣ 创建 Hexo 项目
1 2 3 4
| npm install -g hexo-cli hexo init myBlog cd myBlog npm install
|
测试:
浏览器打开:
三、创建 GitHub 仓库
创建仓库:
⚠️ 免费账号必须是 Public 才能使用 Pages。
四、把 Hexo 源码推送到 GitHub
在 Hexo 根目录执行:
1 2 3 4 5 6
| git init git add . git commit -m "initial hexo source" git branch -M main git remote add origin git@github.com:username/username.github.io.git git push -u origin main
|
五、启用 GitHub Actions 自动部署
进入仓库:
如果页面只显示域名选项,不要慌,这是新版 UI。
创建工作流文件
新建文件:
1
| .github/workflows/pages.yml
|
内容如下(2026 官方推荐模板):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| name: Deploy Hexo to GitHub Pages
on: push: branches: - main workflow_dispatch:
permissions: contents: read pages: write id-token: write
concurrency: group: "pages" cancel-in-progress: false
jobs: build: runs-on: ubuntu-latest
steps: - name: Checkout uses: actions/checkout@v4
- name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 cache: npm
- name: Install Dependencies run: npm ci
- name: Install Hexo CLI run: npm install -g hexo-cli
- name: Build Hexo run: npx hexo generate
- name: Setup Pages uses: actions/configure-pages@v4
- name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: ./public
deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest needs: build
steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4
|
提交并 push:
1 2 3
| git add . git commit -m "add pages workflow" git push
|
然后进入:
查看是否自动运行。
六、以后如何发布文章?
1 2 3 4
| hexo new "新文章" git add . git commit -m "add post" git push
|
自动完成:
- 安装依赖
- 生成 public
- 发布到 GitHub Pages
不再使用:
七、换电脑如何继续写博客?
1️⃣ 克隆仓库
1 2
| git clone git@github.com:username/username.github.io.git cd username.github.io
|
2️⃣ 安装依赖
3️⃣ 本地测试
⚠️ 前提:仓库中必须存放的是 Hexo 源码,而不是 public 静态文件。
八、如果之前 main 存的是 public 静态文件怎么办?
迁移步骤:
- 备份当前静态文件到新分支:
1 2
| git checkout -b backup-static git push origin backup-static
|
- 清空 main:
1 2 3 4
| git checkout main git rm -r * git commit -m "clean branch" git push
|
推送 Hexo 源码到 main
添加 GitHub Actions 工作流
九、自定义域名 + Cloudflare 配置
推荐结构
1 2
| example.com → A 记录 www.example.com → CNAME
|
根域名必须添加 4 条 A 记录
1 2 3 4
| 185.199.108.153 185.199.109.153 185.199.110.153 185.199.111.153
|
Cloudflare 设置:
- 类型:A
- 名称:@
- 代理:DNS only(灰色云)
⚠️ 不能只写一条。
www 使用 CNAME
1
| CNAME www → username.github.io
|
Enforce HTTPS 无法勾选?
常见原因:
- Cloudflare 开了橙色云代理
- DNS 未指向 GitHub
- 证书还未签发
解决:
- 改为 DNS only
- 等 10~30 分钟
- 再刷新 GitHub Pages 页面
总结
Hexo + GitHub Actions 是目前:
的个人博客方案。
发布流程极简: