0%

Hexo备份_Github方案

为了解决Hexo源文件的备份与版本控制问题,将源文件托管到Github上方便多终端工作更新博客。

方案概述

Hexo每次部署后,会在本地源文件路径下生成public文件夹。public文件夹内是根据.md生成的html文件,也就是博客的静态页面。

通常情况下,在执行:

1
$ hexo d

就是将public文件夹内的文件同步到Github。

既然静态页面可以部署到Github文件夹中,利用Github的分支思路,就可以同时把源文件也同步到Github上。具体如下:

Hexo分支:存放Hexo源文件(配置文件)

master分支:存放生成的静态网页

部署流程

Hexo分支配置

  1. 创建Hexo分支,设置Hexo分支为默认分支

  2. 在其他目录下,克隆仓库到本地

    1
    $ git clone git@github.com/lliuphok/lluphok.github.io.git
  3. 复制隐藏的.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不能嵌套上传。
  4. 同步,依次执行

    1
    2
    3
    $ git add .
    $ git commit -m "..." # "..."可修改
    $ git push origin hexo

    提交网站相关文件,上传完毕,仓库中可以看到两个分支的差异。

    • 每次换电脑进行博客更新时,不管上次在其他电脑有没有更新,记得先git pull

master分支配置

修改_config.yml中的deploy参数,确保静态网页是提交到master分支

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/lliuphok/lluphok.github.io.git
branch: master

更新流程

其他电脑需要进行同步维护和更新时,操作同上。

安装环境

  • node.js
  • git
  • ssh key

克隆仓库

1
$ git clone git@github.com/lliuphok/lluphok.github.io.git

安装依赖

1
2
3
4
$ npm install -g hexo-cli  # 不需要初始化,即hexo init
$ npm install
$ npm install hexo-deployer-git
...

提交博客

1
2
3
4
5
6
7
$ git pull
$ git add .
$ git commit -m "..."
$ git push origin hexo
$ hexo clean
$ hexo g
$ hexo d

补充

安全起见建议新建private仓库上传源码,避免源文件中私密信息泄露。

在不需要版本控制的情况下,还有什么比直接Onedrive同步更简单的操作吗?

参考文章