利用GitHub仓库分支备份Hexo博客源文件
Hexo静态部署到托管平台很方便,考虑到异地更新并提交Hexo博客内容的需求,可以考虑通过仓库的多分支来解决。hexo部署命令生成的静态网址默认是保存在github_name/github_name.github.io的master分支上,因此,可以在原有的基础上增加一个hexo_source分支保存网址原始数据,并将这个分支设置为默认分支。如此以来,系统环境配置完成后,每次恢复和迁移文件时候只需要git clone即可获取迁移的文件了。
更改仓库的默认分支
GitHub上的仓库初始都会有个master分支,也就是默认分支。对于一个仓库project_name,当我们通过git clone https://github.com/KuiperSirius/project_name.git 下载代码时,实际拉取的是默认分支master对应的代码。而使用hexo写博客时,通常是与md源文件打交道,对于deploy生成的master分支代码并不需要我们关注,因此可将仓库的默认分支改为保存源码的source分支,这样通过git clone拉取的就是source分支代码了。
Git准备工作
通常情况下,在原Hexo托管的仓库上建立分支,并确保原仓库内已有master分支(该分支通常被用于GitHub Pages的默认绑定)。进入本地博客根目录,进行如下操作。
1 | git初始化 |
.gitignore文件内容
1 | .DS_Store |
创建新分支
接下来的工作即为将Hexo源文件push上去,其中仓库的master上是Hexo生成博客网页的代码,而Hexo源文件是要push到一个分支上面的,进行如下操作。
1 | 所以接下来先要在repo上新建一个叫source的分支 |
在Github上备份源文件
本地的博客源文件的修改就可以直接用git命令push到repo的source分支上了,通过如下命令将本地文件备份到Github上,假设目前在hexo博客的根目录下。
1 | 添加修改内容到本地仓储 |
结语及注意事项
建议先备份文件再生成博客。即先执行[git add .],[git commit -m "Date-Backup"],[git push origin source]将博客备份完成,然后执行hexo g -d发布博客。
确保hexo deploy推送的是master分支,hexo目录下的_config.yml文件通常会配置deploy推送的目标地址,这个一般在最初使用hexo时,就会配置为master,无需改动。
1 | Deployment |
更换设备后,在配置好Hexo的环境下,把博客源文件代码克隆下来。
1 | git clone ****** (Your repo address) |
注: 上述操作存在不完善的地方,仍然建议使用Google Drive/One Cloud等云存储备份站点文件。themes目录以内中的主题文件夹存在的.git目录,因为一个git仓库中不能包含另一个git仓库,否则提交主题文件夹会失败,出现远程仓库无法备份theme/next主题的问题。
详见:https://github.com/iissnan/hexo-theme-next/issues/932