搭建Git服务器-Git钩子的使用

设置Git钩子

我们在本地把开发好的项目文件push到服务器时,只是提交到了创建的Git服务器创建的裸仓库中。还需要进入服务器的web运行目录,通过git pull命令拉取到web目录。从本地仓库git push项目到远程仓库,让push到远程仓库中的项目能在web目录运行起来,还需要web目录进行pull拉取下。push一次就需要pull一下,操作起来很繁琐,相当不方便。为了解决这个问题就可以使用Git中的钩子来解决该问题。
咱们已经搭建了Git服务器,并创建了/usr/local/gitdata/目录来存放仓库的。初始化了test.git的仓库文件。地址为:

git clone git@111.231.66.111:/usr/local/gitdata/test.git

进入我们的裸仓库的hooks文件夹,然后新建一个post-receive文件。
cd /usr/local/gitdata/test.git/hooks/
在这里插入图片描述
新建post-receive文件

vim post-receive

在post-receive写入以下内容:

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

在这里插入图片描述
说明:/var/www需要同步的站点目录
设置post-receive为可执行文件(在目录/usr/local/gitdata/test.git/hooks下设置)

chmod +x post-receive

在这里插入图片描述

说明:post-receive的主要目的是当远程仓库发现有用户执行了push操作,就会执行一个脚本post-receive(钩子)。需要修改你的web站点目录的权限,修改所属用户与用户组为git,否则钩子的权限可能会不足而导致执行失败。设置好钩子后,当你本地再次执行push的时候,会发现web目录的文件也同步的更新了。
例如web目录为/var/www
创建web目录

mkdir /var/www

设置/var/www的权限

chown git:git -R /var/www

本地push到git服务器仓库,然后去查看/var/www中web目录就发现同步了。

git push git@111.231.66.101:/usr/local/gitdata/test.git master

本地仓库测试提交
在这里插入图片描述
服务器
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值