首先声明一点,作为一个静态博客,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
时出现的错误
- 输入
ssh -T git@github.com
出现Permission denied (publickey)
借鉴这篇博文 git连接github失败的问题。 - 出现
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
时出现的问题
ERROR Deployer not found: git
- 确定自己安装了hexo-deployer-git。如果没有,在Git Bash上输入:
npm install hexo-deployer-git --save
。 - deploy的type的github需要改成git。
- 注意_config的配置写法。注意缩进,而且冒号后面要有一个空格。
- 确定自己安装了hexo-deployer-git。如果没有,在Git Bash上输入: