Hexo系列教程:基础篇(2)Hexo托管到GitHub和Coding


前言

托管前提

托管 Hexo 也很简单。然而在托管前,您必须检查电脑中是否已成功安装部署Hexo(正常浏览本地化测试站点为准),如果您的电脑中已经成功安装部署Hexo,请跳过此步,否则,请根据以下教程指示完成安装部署。

Hexo系列教程:基础篇(1)Windows下安装部署Hexo

托管特性

GitHub和Coding又是什么?

GitHub是国外公开仓库免费、私有仓库收费的Git代码托管平台。利用Github Page服务可以免费创建一个静态网站。

Coding是国内首个Git代码托管平台GitCafe的前身,现已被Coding收购,公开、私有仓库皆免费,同样提供免费的Page服务。

Page服务是什么?

Page服务本用于介绍托管在代码托管平台的项目,由于其空间免费稳定,可以被认为是用户编写的、托管在GitHub上的静态网页,所以可以搭建一个静态博客站点。

Hexo可以部署在自己的Node服务器上面,也可以部署Git代码托管平台的Page服务上面。对于个人用户来说,部署其上好处颇多,不仅可以省去服务器的成本,还可以减少各种系统运维的麻烦事(系统管理、备份、网络)。

为什么用两个代码托管平台?

目前博客主要访问者是国内用户,GitHub服务器在国内可能有所限制,在国内理论上其访问Coding要比GitHub是要快不少的,而且就算GitHub被墙了,也可以利用把博客域名解析到Coding。并且可以利用域名解析实现默认(国内)线路走Coding,海外(国外)线路走GitHub,实现网站分流访问。通过站长之家测速对比测试GitHub站点Coding站点的访问效果, Ping检测无明显差异,网站测速国内还是Coding占优。


正文

注册GitHub和Coding帐号

访问官网注册,GitHubCoding

注册时,请认真填写Username和Email Address,因为其构建成功通知或失败原因都是通过邮箱推送的。

创建Repository(项目仓库)

注册并登陆GitHub和Coding官网成功后,点击页面右上角的+,选择New repository(新建项目仓库)。

使用Page搭建博客建立仓库时,必须与你用户名相关联,其仓库名必须为固定写法:

GitHub:固定项目名称格式:your_user_name.github.io ——> nEdAy.github.io

Coding:建议项目名称格式:your_user_name ——> neday

注意:其仓库属性必须选择Public(公开)。原因是如果项目弄成私有,博客便是纯文本模式,无法显示js效果,只能用演示功能才可正常浏览,但该功能是收费的。

修改Hexo配置文件,建立关联

然后建立关联,我的Hexo部署在blog文件夹中,现在我们需要修改Hexo配置文件_config.yml文件来建立关联,其位置在blog根目录下。文本编辑器打开_config.yml文件,翻到最下面,找到如下位置,修改为

deploy:
  type: git
  repo:
    coding: https://git.coding.net/yourname/yourname.git,master
    github: https://github.com/yourname/yourname.github.io.git,master

注意:

1. 其中“yourname”替换成你的Github或Coding账户名;
2. 注意在yml文件中,所有接有内容的:和所接内容之间,必须以空格间隔。
3. Hexo 3.x后deploy为上述输入格式

然后执行命令:

`$ npm install hexo-deployer-git --save

配置SSH-Key

1.如果你是第一次使用Git提交到GitHub或者Coding,建议先配置SSH-Key与代码托管平台建立联系。

首先检查本地SSH-Key的设置,查看现有的SSH-Key密钥:

`$  cd ~/. ssh

如果提示:No such file or directory 说明你是第一次使用Git。

2.新建SSH-Key:

`$ ssh-keygen -t rsa -C "邮件地址@youremail.com"

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<此处直接回车>

注意:

1. 其中“邮件地址@youremail.com”替换成你的自己的邮箱地址;
2. 此处的「-C」的是大写的「C」

3.然后系统会要你输入密码:

Enter passphrase (empty for no passphrase):<输入加密串>
Enter same passphrase again:<再次输入加密串>

此处提示你输入一个密码,该密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。

注意:

1. 输入密码的时候没有星号字样的,直接输入然后回车确认即可;
2. 看到The key;s randomart image is:字符图,即新建SSH-Key成功。

4.然后,添加SSH-Key到GitHub和Coding,以完成SSH链接的设置。

1、打开本地 \Users\用户名.ssh\id_rsa.pub 文件。此文件里面内容为刚才生成的SSH-Key密钥。如果看不到这个文件,你需要设置文件夹选项——显示隐藏文件。然后准确的复制这个文件的内容。
2、登陆GitHub(Coding)系统,点击右上角的 Account Settings(账户)—->SSH Public keys(SSH 公钥) —-> add another public keys。
3、把你本地生成的密钥复制到里面Key文本框(SSH-RSA 公钥内容)中,公钥名称可为你的邮箱或空,然后点击 add key(添加)即可。

5.最后,测试SSH是否配置成功

打开Git Bash,可以输入下面的命令,看看设置是否成功,git@github.com的部分不要修改:

$ ssh -T git@github.com

如配置了密码则要输入密码,输完按回车,如果是下面的反馈:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

输入yes就好,然后会看到:

Hi cnfeat! You've successfully authenticated, but GitHub does not provide shell access.

说明Github中的ssh配置成功,再输入:

ssh -T git@git.coding.net

进行同GitHub SSH测试相同步骤,如果显示以下则说明Coding中的SSH配置成功

Hello username You've connected to Coding.net by SSH successfully!

创建Github Pages和Coding Pages 服务

GitHub Pages服务自动开启,共分两种,一种是你的GitHub用户名建立的username.github.io这样的用户&组织页(站),另一种是依附项目的pages。想建立个人博客是用的第一种,nEdAy.github.io这样的可访问的站,由于规定必须项目名和用户名必须相同,所以每个用户名下面只能建立一个该页面,该功能自动开启。

Coding Pages服务需手动开启,进入项目,点击 Pages 服务 ,键入部署分支名称(如master),再点击服务开启即可。

托管部署

最后输入下列命令进行托管部署,同理,每次修改博客后都要执行下述命令。

hexo clean

hexo generate

hexo deploy

等待上传,待托管部署后,用浏览器访问你的page页域名(如nEdAy.github.io或neday.coding.me),正常浏览则正面托管部署第三方成功。

附录

常用命令

hexo new “postName” #新建文章(hexo n == hexo new)

hexo new page “pageName” #新建页面

hexo generate #生成静态页面至public目录(hexo g == hexo generate)

hexo deploy #将.deploy_git目录部署到第三方托管平台(hexo d == hexo deploy)

hexo help # 查看帮助

hexo version #查看Hexo的版本

hexo server #开启预览访问端口(hexo s == hexo server,默认端口4000,’ctrl +
c’关闭server)

复合命令

hexo d -g #生成加部署

hexo s -g #生成加预览


参考

  1. Hexo官方文档——开始使用——概述

欢迎转载,请注明本文的链接地址: http://blog.neday.cn/2017/03/29/Hexo系列教程:基础篇(2)Hexo托管到GitHub和Coding/

苏晟, nEdAy wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!