这里要说的是部署到自己的服务器哦~其实呢,主要是有关 Git 的使用吧。
主要内容:
- Hexo 一键部署
- 使用自己的远程 Git 库
- 快捷登录 SSH
环境:CentOS 7
创建Git用户 && SSH快捷登录
创建Git用户
1 | # 创建无法使用ssh登录,但可以使用git功能的用户 |
- 为什么需要将
git
添加到nginx
用户组后面再聊~
SSH快捷登录
将密钥推送到服务器
1 | ssh-copy-id git@IP |
建立远端Git库
创建库
1 | # 创建库 |
- –bare:创建一个裸仓库(也就是不包含文件的仓库)
如果这里不加 --bare
,待会儿推送的时候就会报错 receive.denyCurrentBranch = false
。如果定不想加的话,就在 .git/config
中添加:
1 | [receive] |
这样就可以正常推送了。
使用库
直接在本地打开终端:
1 | # 克隆库 |
虽然是 push
到远端库了,但是在远端库里,是看不到任何文件的。推送的文件已另一种形式存储在了 hexo_html.git
中。
但想要把Hexo的网页文件放在服务器上,当然是需要能在服务器上直接查看文件的,这样肯定是不行的。为此,有两种方案。
Hexo一键部署
方案一:Git Push
没错,就是直接 push
~
当然,仅 push
肯定是不行的,push
之后,需要 checkout
。
1 | git --work-tree=/var/www/hexo --git-dir=/home/git/hexo_html.git checkout -f |
- -f:强制执行
这样所有内容就会被签出到 /var/www/hexo
中,再使用Nginx代理该目录即可。
注意修改.ignore
文件,默认其中是包含public
目录的,也就是不会推送该目录,而该目录正是保存网页文件的目录,所以需要在 .ignore
中删除 pulic
字样。
自动checkout
但每次 push
后,都要手动 checkout
多麻烦啊,这不行。所以需要配置:每次 push
后自动执行 checkout
。
1 | # 写入命令 |
这样一键 push
,这个脚本就会自动执行 checkout
了,实现一键部署!
方案二:Hexo-deployer-git
这是个插件,专为Hexo开发的,用来部署网页文件,也就是 hexo deploy
这个命令。不装插件前这个命令貌似是无用的。
1 | # 安装 |
修改 _config.yml
文件,没有则添加
1 | deploy: |
使用 hexo deploy
,这个插件会帮你把 public
中的文件推送到远端库中。
自然,也是需要 checkout
的,自动 checkout
方法和方案一相同。