Coding.net和Github两地部署Hexo博客

文章更新

  1. 20160408-初次成文
  2. 20161201-文章内容调整,把hexo d卡住的具体内容,改而增加了到其他文章的链接

为什么会有这篇文章

github在墙外,虽然目前速度不错,但是不好说哪天就访问不了了,那国内用户咋办呢,所以就想把hexo同时推到github和国内的托管平台,目前选了码市(coding.net),因为博客的Markdown源文件都存在了coding.net的私有仓库中,所以觉得顺手就不想折腾了。

实现过程

修改_config.yml

这个地方的修改较为简单,如果你之前已经部署在了github,加一行部署到coding.net的就可以了,但是要注意格式,因为yml语法要求非常严格。

deploy:
  type: git
  repo: git@codingnet:wuliaole/wuliaole.git
  branch: master
  message: "Coding.net with wuliaole pushlished succeed! Congrats!"

具体修改见下图。

config.yml修改

在coding.net建立公开项目用来存储静态文件

coding.net建立公开项目用来存储静态文件

在coding.net建立公开项目用来存储静态文件

初始化项目

在Source目录下生成Staticfile文件

cd source
touch Staticfile

注意文件名的大小写不要错。

开启coding.net的pages服务

开启pages服务

因为开启演示,还需要web hook并且每天收费0.01元?并且演示方式无法绑定域名,只能使用项目名称.coding.net的方式,因为我采用了pages的方式。

找到Coding.net左侧的代码-PAGES服务,右侧选择分支(一般是MASTER),点击开启,等几秒钟就好了。

几个错误

github上传时出现error: src refspec master does not match any

这是因为当前仓库下没有文件,git add .添加一些文件再commit再push就好了。

public key denied

使用ssh -vT git@github.com以及ssh -vT git@coding.net

测试SSH是否可以连接上远程仓库

测试是否可以正确连上远程仓库,如果不行,参考下面的解决办法

hexo d卡住

这个问题我搜索了一下,好像没有人遇到,我等了几分钟,ctrl+c(mac下用control+c)结束了,然后又一次depoly了之后去撸了一盘,发现错误还是权限的问题。

config.yml修改

这个地方当时挺奇怪的,因为之前往coding.net远程仓库单独push的时候,都是手动输入账号和密码的,没有把ssh key添加到coding的设置里去,只单独添加到了github中,然后,这里就遇到问题了,只能以为是当推送多个git的时候,不能一个输入账号密码,一个用ssh key认证,必须要把本机的ssh key填写到多个git的设置中才可以。

所以,这里要再次将本地生成的sshkey添加到两个托管仓库中去(分别是coding.ent和github.com)。

下面用一张图片解释如何生成sshkey。

config.yml修改

然后,在c盘(windows环境)下的用户目录下,这里是c:\users\tinyv\.ssh(tinyv是我的账户名,这里要换成你的账户名),会看到有了known_hosts,以及id_rsa、id_rsa.pub等三个文件,将id_rsa.pub公钥的内容,复制黏贴到coding.net和github中去即可。

config.yml修改

参考资料