自动化部署的精髓在于 git 上传文章到远程仓库之后,
触发远程 hooks 进行 hexo 文章的生成和部署到网站目录
首先在服务器端对应目录建立 git 仓库
1 | git init --bare <repo> |
注意此时使用 --bare
参数建立的是一个裸仓库,该仓库不会保存工作树,仅仅保存 git 信息,一般在服务器端使用。并且
在本地 clone 当前项目
1 | git clone username@address:path/<repo> |
设置好 git 用户名和邮件
1 | git config user.name <name> |
使用 git hooks 实现服务器端裸仓库接受推送后自动部署,官方文档
在服务器仓库目录下
1 | cd hooks |
在 post-receive 下添加以下内容
1 | REMOTE_PATH=<repoPath> |
注意 git hooks 执行权限与 git 的用户权限一致,请注意权限管理避免出现 Permission denied
此时本地向远程仓库推送文章,远程 hexo 将自动 generate 并且将对应文件夹移动至网站目录,至此完成