Hexo博客迁移
托管我的博客的gitcafe已经不提供服务了,只好将博客迁移到coding上。 得益于近期了解一些npm和js相关的技术,对hexo搭建和安装不再一脸懵逼的状况。
事实上,Hexo封装了一些git命令,hexo d
命令的执行会将/public
目录上传到远端仓库中(没错,hexo不在博客根目录执行git初始化)。博客的源代码,包括source
,theme
等都原封不动保存在本地。因此,当需要在其他电脑同步写博客时,需要额外做一些操作。
具体来说就是将public
之外的目录也纳入版本控制一并推送到远程仓库。可以通过分支的方法做到这一点。在远端仓库master
分支存放源代码,pages
分支存放博文静态文件。
当前博客根目录是没有git版本控制的,因此可以直接执行git init
初始化,并且分支为master
。OK,在hexo配置文件_config.yml
存放静态文件的远端仓库的分支如果不是master
,只要git remote add origin git@********.git
即可连接远端仓库了。hexo初始化时已经生成了.gitngore
文件,将public
,node_module
等目录排除在版本控制之外。在新电脑将master分支拉下来,然后再npm install
即可将所需组件装上。
如此一来,hexo
系列操作执行博文更新,git
系列操作执行代码和配置备份。
另外需要注意的是,theme纳入版本控制,但是如果通过git clone
下载了其他主题,而后更改主题配置(或者添加一些静态文件),这个主题的自定义修改是不会被推送到自己的仓库的(只会推到原主题仓库),因此,clone了主题之后可将主题根目录下的.git
目录删除
hexo d
有时候很诡异的报Permission denied (publickey)
问题,测试ssh -T
显示拥有仓库权限,而且仓库也是存在的。没办法只能通过再重新生成添加密钥来解决。