Hexo 博客自动化部署与安全备份终极指南 (防坑版)

本手册旨在提供一套从零开始,将 Hexo 博客源码安全备份,并自动化部署到 Vercel 的、经过实战检验的终极流程。它整合了在实际操作中可能遇到的常见错误(如子模块问题、Git配置、网络连接等),并提供了明确的解决方案。

一、 核心理念

  1. 源码与部署分离:我们使用两个独立的 GitHub 仓库。一个用于 Vercel 读取并自动部署网站(部署库),另一个作为您博客所有源码的私密备份(备份库)。
  2. Git 作为中枢:所有操作都通过 Git 完成。本地修改完成后,只需一次 git push,即可同时触发网站更新和源码备份。
  3. 自动化:Vercel 负责所有服务器端的构建、部署和HTTPS证书问题,我们只需专注于本地写作和 git push

二、 环境与首次配置 (仅需一次)

1. 基础环境安装

确保您的电脑已安装 Node.js (LTS版)Git

2. 【避坑指南】Git 全局身份配置

如果您是在这台电脑上第一次使用Git,必须先设置您的用户身份,否则 git commit 会报错 Author identity unknown

1
2
3
# 将引号内容换成您自己的 GitHub 用户名和邮箱
git config --global user.name "Your GitHub Username"
git config --global user.email "[email protected]"

三、 博客与仓库的初始化 (首次设置)

1. 创建两个 GitHub 仓库

登录您的 GitHub,创建两个新的仓库,并且**都设置为 Private (私有)**,以确保安全。

  • 仓库一(用于Vercel部署): 例如 lixin-blog
  • 仓库二(用于源码备份): 例如 lixin-blog-backup

2. 【避坑指南】初始化本地博客并正确安装主题

  1. 在您电脑上创建博客:
    1
    2
    3
    hexo init lixin-blog
    cd lixin-blog
    npm install
  2. 以正确方式安装主题(彻底解决子模块问题):
    • 不要使用 git clone 将主题直接克隆到 themes 目录。
    • 正确做法:去您喜欢的主题(如pure, zhaoo)的GitHub页面,点击 Code -> Download ZIP 下载主题的压缩包。
    • 解压后,将文件夹重命名(例如改为 zhaoo),并把它完整地移动到您博客的 themes 文件夹下。
    • 这样做可以确保您的主题从一开始就是普通文件夹,而不是子模块,能避免所有相关的Git报错和Vercel部署失败问题。

3.【避坑指南】关联远程仓库并完成首次上传

这是整个流程中最关键的设置环节。我们将配置“一推双发”,并优先使用更稳定的SSH协议。

  1. 创建 .gitignore 文件
    在您博客的根目录下,创建 .gitignore 文件,并填入以下内容:

    1
    2
    3
    4
    5
    6
    7
    .DS_Store
    Thumbs.db
    db.json
    *.log
    node_modules/
    public/
    .deploy*/
  2. 配置并推送
    在博客根目录的终端里,严格按顺序执行以下所有命令:

    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
    # --- 1. 初始化 Git 仓库 ---
    git init

    # --- 2. 首次提交 (这是让分支存在的关键) ---
    git add .
    git commit -m "首次初始化博客源码"

    # --- 3. 确保分支名为 main ---
    git branch -M main

    # --- 4. 设置远程仓库地址 (推荐使用SSH格式避免网络问题) ---
    # a. 清理可能存在的旧地址
    git remote remove origin

    # b. 添加 Vercel 仓库为主要地址 (请将地址换成您自己的SSH格式)
    git remote add origin [email protected]:sviplixin/lixin-blog.git

    # c. 增加备份仓库为第二个推送地址
    git remote set-url --add --push origin [email protected]:sviplixin/lixin-blog-backup.git

    # d. 检查配置是否正确 (应看到一个fetch和两个push地址)
    git remote -v

    # --- 5. 完成首次上传 ---
    git push -u origin main

    提示:如果您尚未配置过SSH,请参考我们之前的教程生成SSH密钥并添加到GitHub。这是解决 Connection reset 等网络错误的最佳方法。

4.【避坑指南】Vercel 部署配置

  1. 登录 Vercel,导入您的 lixin-blog 仓库。
  2. Build & Development Settings 中,覆盖默认的构建命令。
    • Build Command: node node_modules/hexo/bin/hexo generate
    • Output Directory: public

      这样做是为了绕过在 Vercel 服务器上可能出现的 Permission denied 权限错误。


四、 日常工作流程:写完文章后如何同时部署和备份?

完成以上所有一次性设置后,您未来的日常操作将极其简单和固定。

第一步:本地写作

像往常一样,新建文章、修改文章、调整配置或样式。

第二步:打包并记录您的修改

在博客根目录的终端里运行:

1
2
3
4
5
# 将所有修改都“放进箱子”
git add .

# “封箱贴条”,在引号里写清楚这次您主要做了什么
git commit -m "新增文章:我的第一篇游记"

第三步:一键推送(同时部署到Vercel + 备份源码)

运行最后一条命令:

1
git push origin main

完成!

运行后,您的代码会被同时推送到两个GitHub仓库。Vercel会自动检测到变化并开始部署您的新网站,您的备份也已同步完成。您无需再做任何其他操作。


五、常用命令速查

您的目标 需要运行的命令
本地写文章、看效果 hexo new "文章标题" 然后 hexo s
发布到Vercel并备份源码 git add . -> git commit -m "..." -> git push origin main