在Github部署Hexo博客

1.安装Git和NodeJS

在Windows上使用Git,可以从Git官网直接

,然后按默认选项安
装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就
说明Git安装成功!

在Git中绑定Github账号,打开“Git Bash”,在命令框中依次输入两行命令:

1
2
3
git config --global user.name “Your Name”
git config --global user.email email@example.com
# 其中Your Name和email@example.com替换成上面注册时的账户名和邮箱

由于 Hexo 是基于 Node.js 驱动的一款博客框架,所以安装NodeJS

并配置环境变量。

安装之后可以输入以下命令查看是否安装成功:

1
2
3
4
git version
node -v
npm -v

2.安装Hexo

以上环境准备好了就可使用 npm 开始安装 Hexo 了,在命令行输入执行如下命令:

1
npm install -g hexo-cli

安装 Hexo 完成后,在指定文件夹下打开“Git Bash”,再执行下列命令,Hexo 将会在指定文件夹中
新建所须要的文件:

1
2
3
hexo init myBlog
cd myBlog
npm install

若是上面的命令都没报错的话,就恭喜了,运行hexo s 命令,其中 s 是 server 的缩写,在浏览
器中输入 http://localhost:4000 回车就能够预览效果了。

3.将博客部署在GitHub上

点击 Start project 或者下面的 new repository 建立一个新的仓库,注意Github 仅能使用一个同
名仓库的代码托管一个静态站点,这里注意仓库名一定要是: 用户名.github.io

配置 SSH key ,要使用 git 工具首先要配置一下SSH key,为部署本地博客到 Github 作准备。

1
2
3
4
git config --global user.name "用户名"
git config --global user.email "你的邮箱"
ssh-keygen -t rsa -b 4096 -C "你的邮箱"

输入以下命令来查看公钥内容:

1
cat ~/.ssh/id_rsa.pub

将显示的公钥内容复制到剪贴板。

登陆 Github 上添加刚刚生成的SSH key,按如下步骤添加,右上角点击头像-> settings -> SSH
and GPG keys,建立一个新的 SSH key, 标题随便,key 就填刚才复制那个,确认建立,这样在你
的 SSH keys 列表里就会看到你刚刚添加的密钥。

首次使用还须要确认并添加主机到本机SSH可信列表。若返回 Hi xxx! You’ve successfully
authenticated, but GitHub does not provide shell access. 内容,则证实添加成功。

如果最后一步报错⚠️

1
2
3
4
5
6
7
Please make sure you have the correct access rights and the repository exists. 
FATAL Something's wrong. Maybe you can find the solution here:https://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess.<anonymous> (C:\MyBlog\myblogs\node_modules\hexo-deployer-git\node_modules\hexo-util\lib\spawn.js:51:21)
at ChildProcess.emit (node:events:519:28)
at cp.emit (C:\MyBlog\myblogs\node_modules\cross-spawn\lib\enoent.js:34:29)
at ChildProcess._handle.onexit (node:internal/child_process:294:12)

解决方案🎉

1.首先检查上述配置过程中是否出错,即 _config.yml 文件是否出错
2.检查 git 是否能够连接 github

1
git ls-remote https://github.com/xingzhuz/xingzhuz.github.io.git

3.如果不能连接,再测试 SSH 连接情况

1
2
3
ssh -T git@github.com
# 如果报错
ssh: connect to host github.com port 22: Connection timed out
  • 说明这个 SSH 连接超时,解决方案就是换个端口号
  • 按照以下进行添加或者更改,更改电脑用户目录下的 config 文件,我的是 C:\Users\xingzhu\.ssh\config,以记事本打开或者其他方式打开
1
2
3
4
# 如果有这行数据,更改和添加对应的参数,如果没有,直接添加到末尾处
Host github.com
Hostname ssh.github.com
Port 443
  • 更改后,注意需要刷新使其生效,有对应的命令,粗暴的方式就是重新启动即可
  • 生效后,测试连接情况
1
2
3
4
5
ssh -T git@github.com
# 我的成功示例
# Hi Bitware0322! You've successfully authenticated, but GitHub does not provide shell access.
ping github.com
# 显示一系列数字,即 IP

此时,本地和Github的工做作得差不了,是时候把它们两个链接起来了。你也能够查看官网的部署
教程。先不着急,部署以前还须要修改配置和安装部署插件。第一:打开项目根目录下的
_config.yml 配置文件配置参数。拉到文件末尾,填上以下配置。

第二要安装一个部署插件 hexo-deployer-git,在创建的Hexo博客根目录右键打开“Git Bach”,输入以下指令:

1
npm install hexo-deployer-git --save

最后

1
2
hexo g # 先生成
hexo d # 部署到Github上

这时用浏览器输入 用户名.github.io 就可以访问刚才的网站啦。