一行命令,自动将本地文件部署到远程服务器上。
最近搭了个个人网站,在放到服务器上时,考虑到,如果每次更新的内容,都要用 FTP 或者别的文件传输方式,将文件一个个的放到服务器上,简直是太麻烦了,有没有什么办法更好,更快的完成部署呢?
使用 Git Hooks(Git 钩子),可以做到这点。Git Hooks 是什么?「Git 能在特定的重要动作发生时触发自定义脚本」,比如说pre-commit
, post-receive
等等,在这些动作之前或者之后,会运行定义好的脚本。要做到自动部署,就是要用到这个 post-receive
。
在设置自动部署前,先要设置无密码登录远程服务器,具体操作可以参考这篇文章。[ SSH Key 无密码登录服务器 ]
自动部署
整个流程大概是:在服务器端创建一个 Git 仓库(repository),然后将本地的文件使用 git push
上传到这个仓库后,将上传到Git 仓库的文件,自动复制到服务器里网页运行的文件夹下。
- 在服务器端,创建一个 Git 仓库,
git init --bare website.git
- 创建
post-receive
文件
cd website.git
vim hooks/post-receive
将以下内容