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

自己搭建的Git服务器私有库,测试完毕,可以正常使用![如何搭建自己的Git服务器]

既然可以正常clone、add、commit、push到远程git服务器,那么成功了,也不能及时看到效果。故想到,

Git和SVN应该都有【钩子】hooks机制,[svn如何实现版本库文件和web目录实时同步 ],来利用shell 脚本去自动同步,将提交到版本库的文件自动同步到www目录指定的文件夹下,

从而,可以实现,实时提交,实时查看效果!

具体步骤:

1、已经搭建好git远端服务器,可以正常使用的前提下
2、在web目录下,新建一个gitdemo目录
     $ mkdir  /www/gitdemo
3、找到在创建git服务器时候,你自己设置的仓库:/data/git/gitdemo.git 
4、设置钩子
     cd hooks
     vim post-receive 编辑模式输入:

     #!/bin/bash
     git --work-tree=/home/www/gitdemo  checkout -f
5、保存退出后,将该文件用户及用户组都设置成git
     chown git:git post-receive
6、给这个shell文件可执行权限
     chmod +x post-receive
   钩子已经设置完毕!

去git客户端进行测试,push成功后,但是在/www/gitdemo/目录下没有发现你推送的文件,那么就是由于文件夹的权限的原因造成的!

假设你的web目录www的所属组是root(www)
1)你可以将你的git用户加入这个组,并给git添加写入权限。
2)你还可以直接将这个文件的所属改为git,chown git:git /www/gitdemo/ 

原创文章,转载请注明: 转载自HSBLOG

本文链接地址: Git推送到服务器后自动同步到站点目录www