比较合适的Hexo多设备同步方法


比较合适的 Hexo 多设备同步方法

经常我们有一个场景:需要在公司或者家庭多个电脑完成 Hexo 的博客撰写和发布工作。这就涉及到 Hexo 多电脑的同步问题。

网上的方案基本上都是多分支方案,也就是在同一个仓库创建两个分支:

  1. Hexo 分支 – 用来保存所有 Hexo 的源文件
  2. master 分支 – 用来保存 Hexo 生成的博客文件

在创建 GitHub Pages 或者 Coding Pages 时,以 master 分支为 pages 分支。
Hexo 的 deploy 指向 master 分支部署 pages,git 的管理指向 Hexo 分支。

因为我的 GitHub Pages 对应的仓库是 public 的,所以会导致 Hexo 源文件暴露在公开的仓库了。这样也就会把我的博客的一些密钥、统计管理配置等暴露在公开仓库分支了。如果对这些配置的_config.yml进行单独管理的话,也很麻烦。

所以Hexo 最完美的多电脑同步方法是,创建两个仓库:

  1. Hexo 私有仓库 – 用来保存所有 Hexo 的源文件
  2. master 公开仓库 – 用来保存 Hexo 生成的博客文件

我的 Blog 配置

  1. 利用 hexo d 直接 deploy Hexo 博客到 GitHub pages
  2. 使用 hexo-theme-material 主题,并作了很多配置

创建远程私有仓库

我是在 Coding 上创建的(如果在 GitHub 可以创建 Private 仓库也可以在 GitHub 上创建)名字就叫 blog。

建立本地 git 仓库

进入你现有的本地 hexo 博客文件夹,先删除第三方主题的 git 配置,如对hexo-theme-material主题

rm -fr ./themes/hexo-theme-material/.git/

然后建立本地的 git 仓库

git init

创建一个.gitignore文件,并放在 Hexo 的根目录,内容为:

.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/

Push 到私有仓库

git remote add origin https://git.coding.net/<yourname>/blog.git
git add .
git commit -m "init my private hexo blog"
git push -u origin master

至此,就完成了本地 Hexo 源码的全备份

在另一台电脑进行 Hexo 写作

首先和最开始使用 Hexo 一样,都有完成 git、node、hexo 等环境的搭建和配置

brew install git

brew install node

brew install npm

npm install hexo-cli -g

拉取 Hexo blog

git clone https://git.coding.net/<yourname>/blog.git

这样你就拥有了你的所有 Hexo 源文件

Hexo 编写和发布

尽管拉取下来了,还需要建立一下 Hexo 的环境,这里需要格外注意的一点是:
千万不要用hexo init命令。原因是当前目录已经建立了 git 仓库环境, hexo init会覆盖到当前的 git 环境,重建一个新的,这样和我们的私有 Hexo 源码仓库脱离了联系。

正确的做法是:

sudo npm install

因为package.json里面已经保存了hexo的必备资源包信息,npm install后 Hexo 环境就建立起来了。

如果需要更新 Hexo 版本或者插件版本,直接使用npm update即可,然后就可以看到 package.json 里面升级了哪些插件。

sudo npm update

接下来就进行正常的编写和发布就好。本地预览的命令还是:

hexo g
hexo s

Hexo 的发布命令是hexo d

最后执行git status把更改的新文件git addgit commit,最后git push到私有仓库,又会完成 Hexo 源码仓库的同步。

END

从此,世界是如此的美好。


文章作者: Weicools
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Weicools !
评论
 上一篇
Android TextView Android TextView
Android TextViewAutosizing TextView使用 Android 8.0(API 级别 26)及更高版本,可以让 TextView文本大小自动扩展或收缩,以根据其TextView特征和边界填充其布局 。此设置可以更
2018-12-10 Weicools
下一篇 
EventBus 源码解析 EventBus 源码解析
EventBus 源码解析EventBus 简介 EventBus 是 Android 端优化的 publish/subscribe 消息总线,简化了应用程序内各组件间、组件与后台线程的通信,主要由三个部分组成: 事件 Event: 可以
2018-09-13 Weicools
  目录