当我们在不同设备时维护、配置Hexo博客时,当你git你的GitHub Pages页面的内容并不能实现Hexo博客的备份和恢复,这是因为GitHub Pages上的内容是经过Hexo渲染过后的文件,即public文件夹下的内容,并非我们的博客源文件

最简单的方法是创建一个新的仓库,把本地所有的内容上传到该仓库,但这样会备份一些不必要的文件,例如public文件夹的内容。解决办法是在每次备份时候,先执行一遍hexo clean命令,也可以忽略public文件夹的上传。

备份

我的博客根目录文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
.
├── _config.butterfly.yml
├── _config.fluid.yml
├── _config.landscape.yml
├── _config.yml
├── db.json
├── node_modules
├── package.json
├── package-lock.json
├── scaffolds
├── search.xml
├── source
└── themes

Hexo初始化仓库文件内容:

1
2
3
4
5
6
7
scaffolds
source
themes
.gitignore
.gitmodules
_config.yml
package.json

对比添加需要备份的文件,最终我的备份文件列表如下:

1
2
3
4
5
6
7
8
9
10
scaffolds
source
themes
.gitignore
.gitmodules
_config.yml
package.json
_config.butterfly.yml
_config.fluid.yml
search.xml

操作

  1. 修改.gitignore文件,添加package-lock.json到忽略清单
  2. 删除不使用的主题landscape或者添加到忽略列表
  3. 执行以下命令,在本地创建备份仓库:
1
2
3
4
cd blog
git init
git add .
git commit -m "blog first backup"
  1. 将备份内容push到远程仓库
1
2
3
git branch -m main 
git remote add origin https://github.com/rminit/Hexobackup.git
git push -u origin main