托管我的博客的gitcafe已经不提供服务了,只好将博客迁移到coding上。 得益于近期了解一些npm和js相关的技术,对hexo搭建和安装不再一脸懵逼的状况。

事实上,Hexo封装了一些git命令,hexo d命令的执行会将/public目录上传到远端仓库中(没错,hexo不在博客根目录执行git初始化)。博客的源代码,包括sourcetheme等都原封不动保存在本地。因此,当需要在其他电脑同步写博客时,需要额外做一些操作。

具体来说就是将public之外的目录也纳入版本控制一并推送到远程仓库。可以通过分支的方法做到这一点。在远端仓库master分支存放源代码,pages分支存放博文静态文件。

当前博客根目录是没有git版本控制的,因此可以直接执行git init初始化,并且分支为master。OK,在hexo配置文件_config.yml存放静态文件的远端仓库的分支如果不是master,只要git remote add origin git@********.git即可连接远端仓库了。hexo初始化时已经生成了.gitngore文件,将publicnode_module等目录排除在版本控制之外。在新电脑将master分支拉下来,然后再npm install即可将所需组件装上。

如此一来,hexo系列操作执行博文更新,git系列操作执行代码和配置备份。

另外需要注意的是,theme纳入版本控制,但是如果通过git clone下载了其他主题,而后更改主题配置(或者添加一些静态文件),这个主题的自定义修改是不会被推送到自己的仓库的(只会推到原主题仓库),因此,clone了主题之后可将主题根目录下的.git目录删除

hexo d有时候很诡异的报Permission denied (publickey)问题,测试ssh -T显示拥有仓库权限,而且仓库也是存在的。没办法只能通过再重新生成添加密钥来解决。