Hexo 部署到 Gitee
文章目录
- Hexo 部署到 Gitee
- 1. Gitee 创建仓库
- 2. 修改 Hexo 配置文件
- 3. 生成/添加 SSH 公钥
- 3.1 生成 SSH 公钥
- 3.2 将公钥添加到 Gitee
- 3.3 验证公钥添加结果
- 4. 生成 & 部署 Hexo
- 5. 在 Gitee 上开通/更新 Git Pages 服务
- 6. 浏览 Hexo 页面
- 7. 不是Bug的Bug
关于 Hexo 项目的创建过程,请参考之前的文章基于黑群晖 NAS 搭建 Hexo 博客系统。虽然这篇文章是基于黑群晖 NAS 写的,但是在其他操作系统的实现思路差不多。
1. Gitee 创建仓库
- 登录 Gitee,如果没有账号就先创建个账号。
- 创建仓库
- 进入主页之后,点击页面右上角的
+
号,然后选择新建仓库
- 配置仓库信息
- 记录仓库地址,之后会用到
2. 修改 Hexo 配置文件
修改 Hexo 工程目录下的配置文件_config.yml
,在文件的最下面,找到deploy
字段,配置成如下形式:
type
和branch
没什么好说的,repo
后面的值就是之前创建的仓库的地址。
3. 生成/添加 SSH 公钥
3.1 生成 SSH 公钥
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。
你可以按如下命令来生成 sshkey:
# 注意:该命令是在本地PC上执行
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
# Generating public/private rsa key pair...
注意:这里的
xxxxx@xxxxx.com
只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub
文件内容,获取到你的 public key
# 注意:该命令是在本地PC上执行
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制生成后的 ssh key。
3.2 将公钥添加到 Gitee
首先,进入设置
页面。
在安全设置
中,选择ssh公钥
:
添加公钥后,点击确定
。
3.3 验证公钥添加结果
添加后,在终端(Terminal)中输入:
# 注意:该命令是在本地PC上执行
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
内容,则证明添加成功。
添加成功后,就可以使用SSH协议对仓库进行操作了。
可能是因为我是在NAS上搭建环境的原因,在执行ssh -T git@gitee.com
指令时,遇到了如下错误:
从提示可以看出是id_rsa
目录的属性值0777
有问题,正常情况下,公钥应该是0700
属性,所以需要通过如下命令修改:
chmod 0700 /var/services/homes/wanglehe/.ssh/id_rsa
然后再执行ssh -T git@gitee.com
就 OK 了。
4. 生成 & 部署 Hexo
# 切换到 Hexo 工程目录
cd ~/myblog
# 生成 Hexo 缓存文件和静态文件
hexo g
# 部署到 Gitee
hexo d
在执行hexo d
时,我遇到一个错误ERROR Deployer not found: git
:
在 Hexo 工程目录下,执行npm install --save hexo-deployer-git
即可修复该错误。再次执行hexo d
就OK了。
5. 在 Gitee 上开通/更新 Git Pages 服务
想要顺利的看到部署的 Hexo 页面,还需要在 Gitee 上开通 Git Pages 服务。
首先,进入之前创建的 git 仓库。
然后,点击服务
-> Git Pages
最后,点击开启/更新
。
6. 浏览 Hexo 页面
打开浏览器,直接输入 Git Pages 服务提供的网站地址,即可看到 Hexo 页面。
7. 不是Bug的Bug
每次修改本地的 Hexo 工程目录之后,通过 hexo g
命令即可将更新后的工程部署到 Gitee。但是,这个时候你通过浏览器看到的 Hexo 博客页面并不会更新… 你需要再次执行5. 在 Gitee 上开通/更新 Git Pages 服务
的步骤更新 Git Pages 才行。千万不要忘了!!