当前位置: 首页 > article >正文

搭建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@43.143.82.81:/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@43.143.82.81:/usr/local/gitdata/test.git master

http://www.kler.cn/a/6246.html

相关文章:

  • 基于顺序表实现队列循环队列的处理
  • 【Halcon】例程讲解:基于形状匹配与OCR的多图像处理(附图像、程序下载链接)
  • 用Python开启人工智能之旅(四)深度学习的框架和使用方法
  • 【玩转OCR】 | 腾讯云智能结构化OCR在多场景的实际应用与体验
  • 运行StableDiffusionInpaintPipeline的Example时报错:OSError: Cannot load model runwayml/stable-diffusion-...
  • python递归最多多少层
  • 进化吧Java接口兽
  • 代码生成- 引言
  • 编译报错pcl_conversions、及pcl_rosConfig解决方法
  • 位图和布隆过滤器
  • 4.3---Spring框架之Spring中bean的注入方式---(深入版本)
  • 免费CDN-CloudFlare的使用教程
  • STM32个人笔记-I2S
  • Git操作之 git add 撤销、git commit 撤销
  • 原神服务器架设教程(服务器命令代码)
  • C++相关面试题总结一——内存、关键字、STL、指针、排序、Lambda
  • 【iOS】—— 类和对象底层探索
  • SpringBoot国际化配置
  • 通过 NFTScan 追踪 NFT 钻石手持仓
  • mysql binlog 一直追加写,磁盘满了怎么办?
  • Win11启用IE方法
  • 超详细WindowsJDK1.8与JDK11版本切换教程
  • PCB模块化设计11——VGA高速PCB布局布线设计规范
  • nanovg绘图库的编译与使用
  • 【Python】数据容器--列表常用方法
  • 23种Java设计模式知识要点