本章讲的是如何将本地的个人项目远程部署到 GitHub Pages,涉及到GitHub的项目仓库、Git的使用,以及Hexo的远程部署等。

1. 安装 hexo-deployer-git 插件

想要将Hexo项目部署到 GitHub上,需要先安装一个插件。在Hexo项目的根目录打开命令窗口,输入:

npm install hexo-deployer-git --save

2. GitHub上创建一个仓库

仓库的名字可以随便起,不过这个仓库是作为我们的博客仓库的,所以尽量将名字以 {username}.github.io 的形式来起。

比如,我的GitHub用户名是lewky,我就会把这个仓库命名为lewky.github.io。(为什么要这样起名,后面会说明)

3. 修改本地的项目配置文件

在 _config.yml 找到如下:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type:

把刚刚我们新建的GitHub仓库链接配置进来:

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@github.com:/{user}/{repository}.git
branch: master
message:

请注意,这里的仓库地址如果写成:https://github.com/{user}/{repository}.git可能会在后边的部署时无法成功,需要将https://github.com改成git@github.com:

另外这里的branch和message可以不填,branch会默认是master分支,message会默认用下边的格式模板:

Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}

4. SSH key的创建与配置

最关键的一步来了,我们需要生成一对密钥对,然后将公钥配置到GitHub账号上。

4.1 生成RSA密钥对

首先使用 Git Bash 输入:

cd ~/.ssh

~ 指的是当前用户的根目录,即 C:\Users\{user}\;而 .ssh 目录下一般存放着公开的SSH key文件:

  • id_dsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub
  • id_rsa.pub

此外还有个 known_hosts 文件,SSH会把我们每个访问过的计算机的公钥(public key)都记录在里面。

如果在使用了 cd ~/.ssh 后能找到路径,那就把该目录下的 id_rsa.pub 文件里的内容复制到剪切板。如果找不到路径,就执行命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

该命令会生成新的SSH key,这里的参数含义:

-t: type,生成的密钥类型
-b: bits,指定密钥长度,对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位,一般越长越安全。
-C: comment,提供一个新注释

接着会看到如下提示:

Enter file in which to save the key (/c/Users/123/.ssh/id_rsa):

这里按下回车,表示将SSH key保存到默认地址,即:C:\Users\{user}\

如果本身已经存在一个RSA私钥了,会提示你:

/c/Users/123/.ssh/id_rsa already exists.
Overwrite (y/n)?

这里输入 y 可以重新生成RSA密钥对;然后就会看到如下提示:

Enter passphrase (empty for no passphrase):

这里按下回车,表示不设置密码;接着会再提示你输入重复密码,依然是按下回车。

Enter same passphrase again:

这时候我们的SSH key就生成好了,去 ~/.ssh 目录下将里边的 id_rsa.pub 文件里的内容复制到剪切板。

4.2 在 GitHub 上配置SSH key

接着登陆我们的 GitHub 账号:

  • 进入 Settings 页面
  • 选择 SSH and GPG keys
  • 点击 New SSH key
  • 填写 Title(用来给公钥起一个名字,以便和其他的公钥区分开来)
  • 然后在 Key 里将我们刚刚复制的公钥复制进去
  • 最后点击 Add SSH key,这时候 GitHub 会要你输入账号密码进行确认。

4.3 验证ssh连接

使用 Git Bash 输入:

ssh -T git@github.com

接着会看到:

The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

输入 yes,会看到:

Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
Hi lewky! You've successfully authenticated, but GitHub does not provide shell access.

这时候 github.com的公钥被保存到known_hosts文件里,如果我们再执行一次ssh -T git@github.com,就不需要输入yes了,会直接看到:

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

4.4 部署到 GitHub Pages

输入命令:

hexo d
或者
hexo g -d

后一条命令表示生成静态页面并部署到远处仓库,第一次部署会久一点,部署成功后会看到:

 * [new branch]      HEAD -> master
INFO Deploy done: git

接着登陆 GitHub 并进入我们的项目仓库,可以看到已经多出了很多文件,且其 message 都是默认的格式:

Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}

接下来点击 Settings 进入该仓库的设置页面,找到 Github Pages 这一项,选择以 Master 分支作为 source,然后保存;接下来这个仓库就会被部署到 https://{username}.github.io/{仓库名}。

如果你希望直接通过 https://{username}.github.io/ 来访问你的博客,可以将仓库名改为 {username}.github.io;这样就不需要在url后边添加上仓库名来访问了。

接下来,开始享受你的个人博客吧

Hexo搭建博客教程(3) - 远程部署到GitHub Pages的更多相关文章

  1. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)

    前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...

  2. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  3. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置

    前言 有朋友问了我关于博客系统搭建相关的问题,由于是做开发相关的工作,我给他推荐的是使用github的gh-pages服务搭建个人博客. 推荐理由: 免费:github提供gh-pages服务是免费的 ...

  4. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...

  5. Hexo搭建博客教程(1) - 安装环境与本地搭建

    前言 搭建个人博客一般有两种选择,一个是使用WordPress,但是需要将博客搭建在服务器上,不过搭建好后写文章方便,适合没有程序基础的人使用.另一个是使用Hexo,相对简洁高效,不需要服务器,既可以 ...

  6. Hexo搭建博客教程(2) - 博客的简单个性化配置

    本章主要讲博客的个性化,譬如站点的基本配置(语言.头像.站点图标等).安装新的Hexo主题(NexT主题)以及主题的配置. 1. 修改站点配置 打开站点配置文件 ,找到: # Site title: ...

  7. 基于Hexo搭建博客并部署到Github Pages

    基于Hexo搭建博客并部署到Github Pages 之前在简书上写东西,觉得自己还是太浮躁.本来打算用Flask自己写一个,以为是微框架就比较简单,naive.HTML.CSS.JS等都要学啊,我几 ...

  8. 使用github+hexo搭建博客笔记

    听说github上可以搭博客,而且不用自己提供空间和维护,哈哈哈 作为一名程序猿,github搭博客对我有种神奇的吸引力,赶紧动手试一试 关于如何使用hexo搭建博客网上好的教程多如牛毛,而且这篇博客 ...

  9. 利用hexo搭建博客

    利用Hexo搭建博客 以前用Octopress搭过博客,折腾了好久才弄出来,当时看到那巨难看的默认主题,繁琐的操作,一点写东西的欲望都没了. 一次逛微博,看见了Hexo.尝试了一下,真的很好用哦. 下 ...

随机推荐

  1. ORACLE 8i 遇到报错:ORA-01631: max # extents (505) reached in table

    近期在客户的一个8i生产库上使用statspack.发现alert中有报错: Mon Jun 16 13:17:52 2014 Errors in file /oracle/8.1.7/admin/p ...

  2. spi flash 操作

    W25Q16V 是华邦出的一颗 spi flash. 25系列是比较通用的一个系列. 后面的数字 16 跟容量有关, 16 表示 16Mbits, 相当于 2MB. 与此类似的还有 W25Q128V ...

  3. delete from inner join

    Update Update XXX set XXX where 这种写法大家肯定都知道,才发现update和delete居然支持inner join的update方式,这个在表间关联来做更新和删除操作 ...

  4. pyspark 连 MongoDB复制集

    解决问题思路: 核心:0-理解pyspark的执行与java jar的关系: 1-看控制台,看日志: 2-jar缺不缺,版本号,放哪里. [root@hadoop1 mylocalRepository ...

  5. <转载>调制与解调电路详解

    原文链接:http://www.elecfans.com/analog/20120509270848_4.html 调幅和检波电路 广播和无线电通信是利用调制技术把低频声音信号加到高频信号上发射出去的 ...

  6. (linux)main.c中的初始化

    main.c中的初始化 head.s在最后部分调用main.c中的start_kernel() 函数,从而把控制权交给了它. 所以启动程序从start_kernel()函数继续执行.这个函数是main ...

  7. css盒子模型详解一

    什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属 ...

  8. Javascript版五子棋

    Javascript版五子棋,无禁手.欢迎提出算法的改进意见.2. [代码]HTML     <!DOCTYPE html><html>    <head>    ...

  9. jsp的4大作用域

    jsp的4大作用域 首先要声明一点,所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效.4个JSP内置对象的作用域分别为:application.session.reques ...

  10. SPOJ:Bits. Exponents and Gcd(组合数+GCD)

    Rastas's has been given a number n. Being weak at mathematics, she has to consider all the numbers f ...