朱琛的小屋

Hexo博客第二站:部署到GitHub

我们开始把Hexo博客部署在GitHub上。

首先声明一点,作为一个静态博客,Hexo不止能部署在Git上,只要支持Web访问的空间都可以存放Hexo静态博客。不过GitHub作为一个程序员聚居地,年轻的我们也需要靠近组织嘛。
在这里我们假设小伙伴都已经有了一个GitHub账号,并且有了一个GitHub博客。如果没有做的请看这里 > GitHub博客搭建

注意:下面的命令在Git Bash上运行。

1. GitHub生成 SSH key

1.1 生成 SSH key

作为第一步,首先得让我们的电脑连上GitHub。
输入ssh-keygen -t rsa -b 4096 -C "your_email@example.com",接下来就是不断的敲回车就可以啦。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Your identification has been saved in /Users/you/.ssh/id_rsa.
Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

此时在你电脑的 C:\Users\用户名\.ssh\这个目录下就可以找到我们需要的SSH key - id_rsa.pub了。
此时在你的GitHub的settings里找到SSH keys,把id_rsa.pub里面的东西添加到Add an SSH key的key里面。

然后在Git Bash里面输入ssh -T git@github.com:

$ ssh -T git@github.com
Hi prozhuchen! You've successfully authenticated, but GitHub does not provide shell access.

第一步成功!

1.2 输入ssh -T git@github.com 时出现的错误

  1. 输入ssh -T git@github.com出现Permission denied (publickey)
    借鉴这篇博文 git连接github失败的问题
  2. 出现ssh:connect tohost github.com port22:Bad file number
    可以看出是端口出现了问题,22是默认的ssh端口,但一般好像是关上的,所以我们改掉端口。
    我们在SSH key的目录下(一般是C:\Users\用户名\.ssh\)新建一个config文件,内容是:
Host github.com  
User fulinux@sina.com  
Hostname ssh.github.com  
PreferredAuthentications publickey  
IdentityFile  ~/.ssh/id_rsa  
Port  443  

在此尝试连接,应该可以了。

2. Hexo部署到GitHub上

2.1 Hexo部署

我们首先进入到Hexo的站点配置文件_config.yml,修改Deployment部分。

# Deployment
## Docs: http://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@github.com:prozhuchen/blog.git
  branch: gh-pages

这里的repo是你的GitHub博客的SSH地址,branch是你想部署在该仓库的分支。如果不知道自己博客的SSH地址的小伙伴看这里:

当然了,你首先得点击clone with HTTPS,SSH;里面的SSH,然后框框里的就是你博客的SSH地址了。
然后输入:

hexo g
hexo d

可以看见:

$ hexo d
INFO  Deploying: git
INFO  Clearing .deploy folder...
INFO  Copying files from public folder...
.....
Branch master set up to track remote branch gh-pages from git@github.com:prozhuchen/blog.git.
Everything up-to-date
INFO  Deploy done: git

此时去看你自己的GitHub博客吧~(地址应该是username.github.io或者是.com)。接下来我们来看看如果让我们的博客变得更完美了。

2.2 输入hexo d时出现的问题

  1. ERROR Deployer not found: git
    1. 确定自己安装了hexo-deployer-git。如果没有,在Git Bash上输入:npm install hexo-deployer-git --save
    2. deploy的type的github需要改成git。
    3. 注意_config的配置写法。注意缩进,而且冒号后面要有一个空格。
朱琛 wechat
扫一扫,用手机看更方便~
坚持原创技术分享,您的支持将鼓励我继续创作!