可能有的小伙伴认为备份不就创建一个仓库多简单;或者说我将Hexo博客源文件拷贝到U盘不就可以了吗,可是你写一篇文章或者更新一次配置就要拷贝一次不是很麻烦吗?
备份博客源文件的好处:
- 如果电脑突然罢工,我们的源文件也不会丢失。
- 有时候不方便需要更换电脑写作,我们直接clone仓库就可以了。
前提、机制
前提是你已经初始化好了自己想要备份的那个博客。GIT、GitHub/Gitee环境已经准备好了。
机制是这样的,由于hexo d上传部署到github的其实是hexo编译后的文件,是用来生成网页的,不包含源文件。
也就是上传的是在本地目录里自动生成的.deploy_git里面。
其他文件 ,包括我们写在source 里面的文章,和配置文件,主题文件,都没有上传到github
备份博客
我是用的gitee,因为Github有时候速度慢上不去。
⑴Git配置多个SSH-Key
我用Github部署博客,用Gitee备份博客,所以需要两个SSH-Key,现在已经有了Github的,所以再新建一个Gitee的就欧克了
解决方法
1.生成一个Gitee用的SSH-Key
ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/gitee_id_rsa
2.输入命令,无脑下一步即可,会生成密钥文件
3.将gitee_id_rsa.pub用记事本打开,把里面的密钥填到Gitee
4.在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
4.用ssh命令测试
ssh -T git@gitee.com
成功的话会返回下图内容
⑵新建仓库
新建一个仓库,自己命名,勾选README
⑶获取 .git文件夹
原始的博客文件夹只有.deploy_git,是没有.git文件夹的,于是我们先去桌面或者哪里随便一个地方,把刚刚的hexo分支给clone下来。然后剪切出里面的.git文件夹,复制到现在的博客文件夹中。
命令:
git clone git@gitee.com:muzihuaner/hexo.git
//git@gitee.com:muzihuaner/hexo.git 改为你自己的
如图:
⑷创建.gitignore
用来在上传时候忽略一些文件,即不上传.gitignore
中忽略的文件。有就不用管了,没有的话自己手动添加。
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
1234567
注意,如果你之前克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删掉,因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致你的主题文件无法上传,这样你的配置在别的电脑上就用不了了。
⑸备份
通过如下命令将本地文件备份到Gitee上。
在hexo博客的根目录下执行
git add .
git commit -m "backup" (注:“backup”里面换成你需要,如“first commit”)
git push -u origin master (注:此操作目的是把本地仓库push到gitee上面,如果没有使用密钥此步骤需要你输入帐号和密码)
这样就备份完博客了且在Gitee上能看到
其中node_modules、public、db.json
已经被忽略掉了,没有关系,不需要上传的,因为在别的电脑上需要重新输入命令安装 。
个人备份习惯
hexo c
git add .
git commit -m "Backup"
git push
hexo g
hexo d
恢复博客
目前假设本地Hexo博客基础环境已经搭好:比如安装git
、nodejs、hexo安装...
克隆项目到本地
输入下列命令克隆博客必须文件
git clone https://gitee.com/muzihuaner/hexo.git
//https://gitee.com/muzihuaner/hexo.git换成你的
恢复博客
在clone下来的那个文件夹里面执行
npm install hexo-cli
npm install
npm install hexo-deployer-git
在此不需要执行hexo init这条指令,因为不是从零搭建起新博客。
然后就完成了,你如果想也可以
hexo clean
hexo g
hexo d
是不是很简单呢?