webhook的方式做一个监听,在git仓库管理平台添加webhook后可以实时同步代码到项目。
①在宝塔安装webhook插件
②添加脚本
我监听某个仓库提交并拉取dev分支示例:
#!/bin/bash echo "" # 输出当前时间 echo $(date --date='0 days ago' "+%Y-%m-%d %H:%M:%S") echo "Start" # git 项目路径 gitPath="/www/wwwroot/yourWebsite" # git 网址 gitHttp="你的git ssh地址" echo "Web 站点路径:$gitPath" # 判断项目路径是否存在 if [ -d "$gitPath" ]; then cd $gitPath # 判断是否存在 git 目录 if [ ! -d ".git" ]; then echo "在该目录下克隆 git" git clone -b master $gitHttp . && echo "克隆成功" || { echo "克隆失败"; exit 1; } else echo "Git 目录已存在,开始更新" fi # 切换到 master 分支 # echo "切换到 dev 分支" git checkout dev echo "拉取最新的项目文件" git pull #git reset --hard origin/dev # 拉取最新的项目文件,并输出结果 # 设置目录权限 echo "更新完成" chown -R www:www $gitPath echo "End" exit 0 else echo "该项目路径不存在" echo "End" exit 1 fi
③测试结果