博客新机恢复实录:从克隆到 GitHub Pages 发布
本文已按 2026-09-16 的仓库状态更新。当前发布不使用
hexo deploy,也不向main推送生成文件。
当前架构
| 项 | 当前约束 |
|---|---|
| 源码分支 | dev_tttt |
| Node.js | >=20.19.0 <23,以 .nvmrc 为准 |
| Hexo | 8.1.2 |
| 包管理 | npm,使用 package-lock.json |
| 主题 | Butterfly 5.7.0、NexT 8.29.0,均由 npm 安装 |
| 发布 | GitHub Actions artifact → GitHub Pages |
main 和 master 只保留历史静态产物,不再是发布目标。
从零恢复
1 | git clone git@github.com:hugh-tong/hugh-tong.github.io.git |
这里使用 npm ci,让依赖严格按照锁文件恢复。NexT 已经是普通 npm 依赖,不需要再手工克隆 themes/next。
验证两套主题
1 | npm run verify |
该命令会检查文章元数据和本地链接,随后分别 clean build Butterfly 与 NexT,并检查生成站点的关键路由和站内资源。
如需交互预览:
1 | npm run server:butterfly |
浏览器中至少抽查首页、文章页、分类、标签、搜索、公式、代码块和移动端布局。
保存源码
1 | git status --short |
提交前只暂存本次修改的路径,不使用 git add . 把无关文件一起带入。
发布上线
- 等待 GitHub Actions 中的
Validate blog通过。 - 打开 Actions →
Deploy GitHub Pages。 - 选择
dev_tttt,点击Run workflow。 - 等待 build 和 deploy 两个 job 成功。
- 检查首页、404、sitemap、feed 和本次修改的文章 URL。
发布 workflow 生成 public/ 并上传 Pages artifact,不会提交生成 HTML,也不会改写任何分支。
回滚
错误发布从源码历史回滚:
1 | git revert <bad-commit> |
等待验证通过后重新触发 Pages workflow。不要直接修改线上生成文件。
信息源
仓库根目录 DEPLOYMENT.md 是当前操作手册;package.json 和 .github/workflows/ 是版本与自动化行为的最终依据。本文只提供叙事版速查。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 tttt's!
