我们经常遇到这样的问题:拥有多台电脑时,想在不同的电脑上同步更新Hexo博客,似乎也成为了一个难题。

在网上查阅了不少资料,大多数人的解决办法是多分支方案。即将一个仓库设置两个分支,其中一个用来保存源代码,而另一个则保存生成的静态网站。

这么做非常简单方便,但却有一个不容忽视的缺点:由于源代码公开,任何人都可以轻而易举的看到你博客里所有的内容并复制一个一摸一样的博客。包括了你的阅读次数,多说评论等私有信息。对于一些更加注重隐私保护的人来说,这个方法十分危险。

因此,最保险的方法是建立两个不同的仓库,一个私有,一个公有。私有仓库用来保存源文件,公有仓库用来保存静态网站。这样,既保证了安全性,又不失方便快捷,一举两得。

基础前提

下面的操作需要用户熟悉Hexo,请确保自己已经了解如下基础知识。

  • 下载安装nodejsnpm
  • 成功配置Hexo并在网站发布成功
  • 学会使用第三方主题如next主题

如果对Hexo的基础操作不清楚,建议先了解之后再进行操作。

创建账户

由于Github的账户创建私有仓库需要付费,而国内的码云(Gitee)服务可以免费创建私有仓库,所以这里我们使用它来创建私有仓库。

首先,去码云创建账户。

在码云上创建一个私有仓库,如hexo来保存源代码。

建立本地仓库

第三方主题本身就是一个git仓库,我们在将源码上传到私有仓库时,主题并不会被上传,会造成一系列的麻烦。所以我们需要将配置文件导出,并将此文件夹放在git的忽略文件中。

进入到本地博客所在文件夹中,首先,执行git init命令。然后将themes/next添加到.gitignore文件中,如果没有,请创建此文件。

将第三方主题如next主题中的_config.yml备份到主文件夹中并重命名为next_config.yml。这样在每次备份时,也可以将第三方主题的配置同步。

同步到私有仓库

将本地目录与远程同步,执行以下操作:

git remote add origin 远程地址(即私有库地址)
git add.
git commit -m "修改日志"
git push -u origin master

这就就完成了本地与远程的同步,可以在网站上查看是否同步成功。

值得注意的是,每次源码修改后,都要进行提交与推送,即进行上面的后三个命令,这属于git的基础知识,在此不再详述。

另一台电脑进行同步

在新电脑上,首先确保你已经安装了nodehexo, 然后将同步成功的源码拉取至本地。然后执行npm install恢复Hexo环境。

注意 :此时千万不能执行hexo init命令,这个命令会覆盖当前git仓库,重新建立新的仓库。

然后,安装第三方主题如next

cd hexo
git clone https://github.com/theme-next/hexo-theme-next themes/next

然后,将备份的next_config.yml替换主题文件夹下的config.yml文件。

可以在新的电脑上执行

npm install hexo-deployer-git --save

hexo可以指定deploy的用户,只需在_config.yml文件的deploy选项中加入指定的nameemail选项。

# You can use this:
deploy:
  type: git
  repo: <repository url>
  branch: [branch]
  message: [message]
  name: [git user]
  email: [git email]
  extend_dirs: [extend directory]

如果已经生成了.deploy_git文件夹,则需要删除这个文件夹,并重新执行hexo d命令。

现在,就可以在新的电脑上继续编写博客,并使用hexo ghexo d进行编译和发布了。

在博客编辑完成后,就在此将源码推送至远程私有仓库,每次修改后都需要提交与同步。如果觉得每次输入命令太麻烦,建议使用VS CodeAtom等支持git的文字编辑器。