本文最近一次更新于 5 年 10 个月前,其中的内容很可能已经有所发展或是发生改变。
使用 Hexo 在 GitHub Pages 搭建博客时,博客作为一个单独的 GitHub 仓库存在,但是这个仓库只有生成的静态网页文件,并没有 Hexo 的源文件。这样一来换电脑或者重装系统后,再想找回源文件就比较麻烦了,这里推荐一种比较完美的方法解决备份问题。
备份
- 创建仓库WincerChan.github.io,如果同名仓库之前已经创建,请将之前的仓库改名,新建的仓库必须是 Username.github.io(如果你是将 Hexo 博客部署到了自己的服务器,那么仓库名可以随意设置,我这里就是随意设置的仓库);
- 创建两个分支:master 和 hexo;
- 设置 hexo 为默认分支;
- 将刚刚创建的新仓库 至本地,将之前的 hexo 文件夹中的 _config.yml、themes/、source/、scaffolds/、package.json 和 .gitignore 复制至 WincerChan.github.io 文件夹;
- 将 themes/next/(我用的是 NexT 主题)中的 删除,否则无法将主题文件夹 push(也可以将主题文件夹使用子模块的方式添加到该仓库);
- 在 WincerChan.github.io 文件夹执行 和 (这里可以看一看分支是不是显示为 hexo);
- 执行 、、 来提交 hexo 网站源文件;
- 执行 生成静态网页部署至 Github 上。
这样一来,WincerChan.github.io仓库就有 master 分支和 hexo 分支,分别保存静态网页和源文件。
修改
在本地对博客修改(包括修改主题样式、发布新文章等)后:
- 依次执行 、 和 来提交 hexo 网站源文件;
- 执行 生成静态网页部署至 Github 上。
即重复备份的 7-8 步骤,以上两步没有严格的顺序。
恢复
重装电脑后,或者在其它电脑上想修改博客:
- 安装 git;
- 安装 Nodejs 和 npm;
- 使用 将仓库拷贝至本地;
- 在文件夹内执行以下命令 、、。
附录
这里稍作说明:
添加 ssh-keys
- 在终端下运行:,一路回车;
- 会在 .ssh 目录生成 、 两个文件,这就是密钥对,id_rsa 是私钥,千万不能泄漏出去;
- 登录 Github,打开「Settings」–>「SSH and GPG keys」,然后点击「new SSH key」,填上任意 Title,在 Key 文本框里粘贴公钥 文件的内容,注意不要粘贴成 ,最后点击「Add SSH Key」。
hexo 的源文件
这里说一下步骤 4 为什么只需要拷贝 6 个,而不需要全部:
- 站点的配置文件,需要拷贝;
- 主题文件夹,需要拷贝;
- 博客文章的 .md 文件,需要拷贝;
- 文章的模板,需要拷贝;
- 安装包的名称,需要拷贝;
- 限定在 push 时哪些文件可以忽略,需要拷贝;
- 主题和站点都有,标志这是一个 git 项目,不需要拷贝;
- 是安装包的目录,在执行 的时候会重新生成,不需要拷贝;
- 是 生成的静态网页,不需要拷贝;
- 同上, 也会生成,不需要拷贝;
- 文件,不需要拷贝。
其实不需要拷贝的文件正是 中所忽略的。
持续部署
关于如何使用 CI/CD 持续部署可以参考我这篇文章。
Hexo 博客备份
https://blog.itswincer.com/posts/7efd2818/