介绍
将代码存储在Github上在本地搭建网站实现实时同步。 使用宝塔WebHook自动拉取GIT仓库,支持推送时自动更新代码。 支持:
- 码云
- Github
- Gitlab
宝塔WebHook
在宝塔面板>应用商店>搜索宝塔WebHook进行安装
点击设置添加Hook

命名Hook名称,根据需求填入密码/密钥版WebHook代码

配置Github


使用ssh连接
创建SSL密钥
在命令终端输出:ssh-keygen -t ras ,一路回车

添加SSH密钥

代码
“`shell
#!/bin/bash
echo —————-
# 输出当前时间
date +%Y-%m-%d %H:%M:%S
echo 开始执行
# Git分支名称
branch=main
# Git项目路径
gitPath=/www/wwwroot/******
# Git仓库地址
httpGit=https://username:passwd@gitlab.com/******/******.git
echo Web站点路径:$gitPath
if [ -d $gitPath/.git ]; then # 检查项目路径中是否存在 .git 目录
echo .git 目录已存在,执行 git pull 更新代码…
cd $gitPath || exit
sudo git fetch origin
sudo git reset –hard origin/$branch
echo 拉取最新更新到本地主干…
sudo git pull $httpGit $branch
echo '设置权限…'
sudo chown -R www:www .
else
echo .git 目录不存在,从远程仓库克隆代码…
mkdir -p $gitPath
cd $gitPath || exit
git clone $httpGit .
echo '设置权限…'
sudo chown -R www:www .
if [[ $? != 0 ]]; then
exit
fi
fi
“`
#!/bin/bash
echo —————-
# 输出当前时间
date +%Y-%m-%d %H:%M:%S
echo 开始执行
# 设置 SSH 密钥文件路径
sshKeyPath=~/.ssh/****** # SSH 密钥文件路径
# 获取Git分支名称
branch=main
# 将Git项目存入宝塔路径
gitPath=/www/wwwroot/******
# Git仓库地址
httpGit=git@gitlab.com:******/******.git
# 使用 SSH 密钥进行身份验证
export GIT_SSH_COMMAND=ssh -i $sshKeyPath
echo Web站点路径:$gitPath
if [ -d $gitPath/.git ]; then # 检查项目路径中是否存在 .git 目录
echo .git 目录已存在,执行 git pull 更新代码…
cd $gitPath || exit
sudo git fetch origin
sudo git reset –hard origin/$branch
echo 拉取最新更新到本地主干…
sudo git pull
echo '设置权限…'
sudo chown -R www:www .
else
echo .git 目录不存在,从远程仓库克隆代码…
mkdir -p $gitPath
cd $gitPath || exit
git clone $httpGit .
echo '设置权限…'
sudo chown -R www:www .
if [[ $? != 0 ]]; then
exit
fi
fi
“`