Hexo博客的备份与恢复

可能有的小伙伴认为备份不就创建一个仓库多简单;或者说我将Hexo博客源文件拷贝到U盘不就可以了吗,可是你写一篇文章或者更新一次配置就要拷贝一次不是很麻烦吗?

备份博客源文件的好处:

  • 如果电脑突然罢工,我们的源文件也不会丢失。
  • 有时候不方便需要更换电脑写作,我们直接clone仓库就可以了。

前提、机制

前提是你已经初始化好了自己想要备份的那个博客。GIT、GitHub/Gitee环境已经准备好了。

机制是这样的,由于hexo d上传部署到github的其实是hexo编译后的文件,是用来生成网页的,不包含源文件。

image-20210220111936510

也就是上传的是在本地目录里自动生成的.deploy_git里面。

其他文件 ,包括我们写在source 里面的文章,和配置文件,主题文件,都没有上传到github

备份博客

我是用的gitee,因为Github有时候速度慢上不去。

⑴Git配置多个SSH-Key

我用Github部署博客,用Gitee备份博客,所以需要两个SSH-Key,现在已经有了Github的,所以再新建一个Gitee的就欧克了

解决方法

1.生成一个Gitee用的SSH-Key

1
ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/gitee_id_rsa

2.输入命令,无脑下一步即可,会生成密钥文件

image-20210220112600271

3.将gitee_id_rsa.pub用记事本打开,把里面的密钥填到Gitee

image-20210220112712320

4.在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)

1
2
3
4
5
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa

4.用ssh命令测试

1
ssh -T git@gitee.com

成功的话会返回下图内容

⑵新建仓库

新建一个仓库,自己命名,勾选README

image-20210220113141285

⑶获取 .git文件夹

原始的博客文件夹只有.deploy_git,是没有.git文件夹的,于是我们先去桌面或者哪里随便一个地方,把刚刚的hexo分支给clone下来。然后剪切出里面的.git文件夹,复制到现在的博客文件夹中。

image-20210220113455792

命令:

1
2
git clone git@gitee.com:muzihuaner/hexo.git
//git@gitee.com:muzihuaner/hexo.git 改为你自己的

如图:

image-20210220113609444

⑷创建.gitignore

用来在上传时候忽略一些文件,即不上传.gitignore中忽略的文件。有就不用管了,没有的话自己手动添加。

1
2
3
4
5
6
7
8
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
1234567

注意,如果你之前克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删掉,因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致你的主题文件无法上传,这样你的配置在别的电脑上就用不了了。

⑸备份

通过如下命令将本地文件备份到Gitee上。
在hexo博客的根目录下执行

1
2
3
git add .
git commit -m "backup" (注:“backup”里面换成你需要,如“first commit”)
git push -u origin master (注:此操作目的是把本地仓库push到gitee上面,如果没有使用密钥此步骤需要你输入帐号和密码)

这样就备份完博客了且在Gitee上能看到

image-20210220113951870

其中node_modules、public、db.json已经被忽略掉了,没有关系,不需要上传的,因为在别的电脑上需要重新输入命令安装

个人备份习惯

1
2
3
4
5
6
hexo c
git add .
git commit -m "Backup"
git push
hexo g
hexo d

恢复博客

目前假设本地Hexo博客基础环境已经搭好:比如安装git
、nodejs、hexo安装…

克隆项目到本地

输入下列命令克隆博客必须文件

1
2
git clone https://gitee.com/muzihuaner/hexo.git
//https://gitee.com/muzihuaner/hexo.git换成你的

恢复博客

在clone下来的那个文件夹里面执行

1
2
3
npm install hexo-cli
npm install
npm install hexo-deployer-git

在此不需要执行hexo init这条指令,因为不是从零搭建起新博客。

然后就完成了,你如果想也可以

1
2
3
hexo clean
hexo g
hexo d

是不是很简单呢?