使用git hooks实现代码自动部署更新

本文介绍如何在CentOS7环境中通过设置两个Git仓库(一个裸仓库A和一个普通仓库B),并利用post-receive钩子实现从A到B的自动同步。此方法适用于需要在服务器上进行代码部署或备份的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:CentOS 7

先说下整体思路:在服务器中创建远程仓库A(裸仓库)和本地仓库B(一般仓库)。然后在仓库A中创建使B git pull A的脚本,并每当有用户 git push A的时候就触发该脚本。

1. 初始化两个仓库

两个仓库的目录分别是 A:/home/mycode/test.git 和 B:/home/www/test.git

创建仓库A可以参考点击打开链接

创建仓库B则如同在本地创建仓库一样

cd /home
mkdir www
chown git www/
cd www
#注意,这里要初始化为一般仓库而非裸仓库
git init test.git
chown -R git test.git

2. 在仓库A中配置hooks

cd /home/mycode/test.git/hooks
vi post-receive

然后输入如下内容并保存

unset GIT_DIR

#进入仓库B目录
cd /home/www/test.git
#执行git pull命令
git pull /home/mycode/test.git master
#返回仓库A并退出
cd /home/mycode/test.git
exit 0

赋予其权限

chmod +x /home/mycode/test.git/hooks/post-receive

然后我们在本地向仓库A中 push 文件后就可以在仓库B中看到该文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值