对于已经搭建好了的git服务器,现在需要实现在用户push时,将项目自动部署到服务器上,例如将上个教程中的/git/sample.git
部署到/public/sample/
下,这就要利用git的hooks中的post-receive
来实现代码提交完成之后的动作。将仓库指定一个--work-tree
然后进行检出操作checkout --force
。
具体步骤:
新建sample文件夹,并给777权限。
$ cd /public
$ mkdir sample
$ chmod -R 777 sample/
进入/git/sample.git/hooks
,并将post-receive.sample
复制一份post-receive
,并且编写代码如下
# 指定我的代码检出目录
DIR=/public/sample/
git --work-tree=${DIR} clean -fd
# 直接强制检出
git --work-tree=${DIR} checkout --force
保存退出即可。
注意点
- 如果我们没有配置
ssh免密码登陆
的话,我们需要在push
代码的时候输入密码 - 如果我们添加的远程仓库不是
root@xxx.xxx.xx.xx
,例如是abc@xx.xx.xx.xx
,那么我们要确保abc
用户对wx.git
目录下的文件有777
权限。
由于Git系列(一)Git服务器搭建
已经设置了免密登陆,所以大胆push吧
网友评论