Git推送到服务器后自动同步到站点目录

在开发的过程中,我们往往希望能将Git推送到服务器的内容自动同步到我们的Web站点目录,这样我们可以直接在线上进行开发测试了。

在上一篇文章中我们为自己搭建了一个Git服务器,那么现在我们剩下的就是希望如何做到内容同步了。在这里我们主要用到的东西是Git钩子post-receive

使用ssh协议从服务器上克隆裸版本库内容,这里如果没有配置公钥的话,会提示输入密码。如何配置公钥呢?

设置web目录:

$ mkdir -p /www/blog

设置钩子:

$ cd /home/git/sample.git/hooks $ vi post-receive

向post-revice输入以下内容:

!/bin/bash git --work-tree=/www/blog checkout -f

保存之后,为这个文件设置可执行权限

$ sudo chmod +x post-receive

至此:钩子已经设置完毕!

如果你在Git推送的工程中发现推送成功 但是在blog目录下并没有自己的代码,这时候你可要注意了:这是由于文件夹的权限的原因造成的!
假设你的www目录的所属的用户组为www,你可以将你的git用户加入这个组。
查看用户所在的组

$ id git $ groups git

将www追加至git用户组 并改变设置/www/blog权限为775

$ sudo usermod -a -G git www $ sudo chmod -R 775 /www/blog

Hibbs

0