为了解决Hexo源文件的备份与版本控制问题,将源文件托管到Github上方便多终端工作更新博客。
方案概述
Hexo每次部署后,会在本地源文件路径下生成public
文件夹。public
文件夹内是根据.md生成的html文件,也就是博客的静态页面。
通常情况下,在执行:
1 | $ hexo d |
就是将public
文件夹内的文件同步到Github。
既然静态页面可以部署到Github文件夹中,利用Github的分支思路,就可以同时把源文件也同步到Github上。具体如下:
Hexo分支:存放Hexo源文件(配置文件)
master分支:存放生成的静态网页
部署流程
Hexo分支配置
创建Hexo分支,设置Hexo分支为默认分支
在其他目录下,克隆仓库到本地
1
$ git clone git@github.com/lliuphok/lluphok.github.io.git
复制隐藏的
.git
文件夹到使用的hexo博客目录。修改.gitignore
文件忽略不需要的文件1
2
3
4
5
6
7.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/- 检查
themes
文件夹中的主题是否有.git
和.gitignore
,如果有的话删除。因为git不能嵌套上传。
- 检查
同步,依次执行
1
2
3$ git add .
$ git commit -m "..." # "..."可修改
$ git push origin hexo提交网站相关文件,上传完毕,仓库中可以看到两个分支的差异。
- 每次换电脑进行博客更新时,不管上次在其他电脑有没有更新,记得先
git pull
- 每次换电脑进行博客更新时,不管上次在其他电脑有没有更新,记得先
master分支配置
修改_config.yml
中的deploy参数,确保静态网页是提交到master分支
1 | # Deployment |
更新流程
其他电脑需要进行同步维护和更新时,操作同上。
安装环境
- node.js
- git
- ssh key
克隆仓库
1 | $ git clone git@github.com/lliuphok/lluphok.github.io.git |
安装依赖
1 | $ npm install -g hexo-cli # 不需要初始化,即hexo init |
提交博客
1 | $ git pull |
补充
安全起见建议新建private仓库上传源码,避免源文件中私密信息泄露。
在不需要版本控制的情况下,还有什么比直接Onedrive同步更简单的操作吗?