Hexo3同时发布到多个仓库
博客很久没有更新,最近看到Hexo的最新版本已经是3打头了,决定升级继续写博客。然而升级的过程像大部分新产品一样,新特性往往用不到,真正用到的坑又多了一些。折腾了近一周,终于又可以像往常一样使用Hexo g -d
同时发布到两个git平台。下面记录一下遇到的坑和solution。
Problem 1. Hexo deployer报错
文章Generate正常,进行Deploy时报错。
ERROR Deployer not found: git
Solution:
npm install hexo-deployer-git --save
具体可以查看Hexo3 Wiki和Issue#1013。
Problem 2. 无法同时发布到多个git平台
包括我在内的一部分人在使用Hexo时,是同时把文章发布到多个git平台的,即使用多个git pages服务。如:github pages和coding pages(原gitcafe pages服务)。然后将国内线路解析到coding pages上,将国外线路解析到github pages上,以保证访问速度和体验。 在升级Hexo3之后,同样遇到了文章Generate正常,进行Deploy时报错。
FATAL fatal: remote part of refspec is not a valid name in HEAD: master
在使用Hexo2时,同时发布到多个git平台一般会使用下面的_config.yml配置:
deploy:
type: git
repo:
github: git@github.com:jerry-shao/jerry-shao.github.io.git, master
gitcafe: git@gitcafe.com:jerryshao/jerryshao.git, gitcafe-pages
Solution:
在迁移至coding pages服务后,需要在coding的项目页面手动开启pages服务。这里有一点改进就是coding的pages服务不限定branch的名称,可以自定义pages服务映射的branch。这里我们为了方便,将coding pages这边的branch也改成master。 _config.yml中的deploy也与之前的写法不同,经过多次尝试,以下配置可以同时发布文章到多个平台。
deploy:
type: git
repo:
github: git@github.com:jerry-shao/jerry-shao.github.io.git
coding: git@git.coding.net:jerry_shao/jerryshao.io.git
branch: master
经过修改后使用Hexo g -d
就可以同时发布到github和coding了。