Guide for Hexo Blog Backup and Recovery
在使用 Hexo 搭建博客时,Hexo 会通过自己的逻辑向 GitHub 推送并更新,但这个 GitHub 库上保存的都是经过编译后的 HTML 网页,而搭建博客所需的 Markdown 原稿、配置文件等只保存在本地,一旦丢失后果非常严重。因此,可以采用“公私双库双轨制”的方式,备份重要文件。
一、 核心架构与原理
我们需要将“网页展示”和“源码备份”两个功能进行拆分。公库和私库的作用分别如下:
- 公库:如
AstridStark25963.github.io,仅存放 Hexo 编译生成的静态网页,由hexo deploy自动接管,无需手动干预。 - 私库:新建 GitHub 私有仓库(如
hexo-backup),使用原生 Git 备份博客核心配置文件、Markdown 原稿及自定义脚本。
Hexo 根目录本身并非 Git 仓库,其部署依赖于自动生成的隐藏文件夹 .deploy_git 而非 Git 仓库所使用的 .git 文件夹,因此根目录源码需要单独纳入 Git 版本控制。
二、 配置与初始化
配置 .gitignore 文件
在博客根目录新建或修改 .gitignore 文件,过滤生成的静态文件与大体积依赖,仅保留核心源码及主题目录结构:
1 | # 排除系统文件与编译产物 |
Git 无法检测到空文件夹,因此,需要在空的
themes文件夹中创建.gitkeep文件,以确保 Git 能追踪并保留该空目录结构。
初始化并推送到私库
在博客根目录打开终端,执行以下 Git 命令:
1 | # 初始化仓库 |
由于 GitHub 新建仓库时可能会自动生成 README,导致首次推送产生历史冲突报错。加上
-f强推覆盖云端即可。加
-u参数绑定上游后,以后每次备份只需要输入git push,不需要用git push origin main。
三、 灾难恢复与多端复原
在新设备(需预装 Node.js 和 Git)上恢复博客编写环境。
执行以下命令,拉取源码:
1 | git clone https://github.com/AstridStark25963/hexo-backup.git |
读取备份的 package.json,一键安装 Hexo 本体及相关插件依赖:
1 | npm install |
若使用了第三方主题且未通过 NPM 安装,需拉取主题文件(以 Redefine 为例):
1 | cd themes/redefine |
返回根目录,启动本地服务器验证环境是否复原:
1 | npx hexo s |
四、 多端协作同步工作流 (SOP)
为避免多设备编写导致数据冲突或历史覆盖,请严格遵循以下 Git 工作流:
撰写前(同步云端):
在开始写新文章前,务必先拉取私库最新源码。
1
git pull
发布后(推送备份):
生成网页并部署到公库后,立即将最新源码提交至私库。
1
2
3
4npx hexo d
git add .
git commit -m "Update posts and configs"
git push