利用 Git-hooks 部署项目
利用 Git-hooks 部署项目
设置远程仓库
1 | # 转到裸仓目录(参考《搭建简单的Git服务》新建的裸仓) |
git 默认是禁止push的,所有要设置允许push:
1 | $ vi config |
修改或添加如下内容:
1 | [receive] |
编辑自动部署脚本
自动部署用到git hooks,在git路径下有个hooks文件夹,里面有一些示例。我们把 post-update.sample 重命名为 post-update,并进行编辑:
1 | $ mv post-update.sample post-update |
1 | #!/bin/sh |
这样每当 push master 分支到服务器时,都会自动切换到 DeployPath,也就是 Nginx root 路径,执行 git pull origin master 从仓库拉去最新 master 分支。
部署路径初始化
先把空的仓库克隆到路径下,即为生产目录添加裸仓的URL。
1 | $ cd /data/www |
对于要部署的路径,要把所有者改为:git ,因为 git-hooks 需要该目录读写权限。
1 | $ sudo chown -R git:git blog |
至此,Git 自动部署已经设置完毕,每当在本地执行 git push 的时候,远程的 git-hooks 就会被自动触发。