宝塔WebHook+Gitee自动拉取远程仓库代码
#!/bin/bash
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在 $1 为gitee 钩子 param参数值,为方便多项目管理$1把仓库名、服务器根目录名、钩子名一致
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径 上面创建的abc目录
gitPath="/www/wwwroot/$1"
#git 两种地址都可以
#gitHttp="https://gitee.com/pancru/$1.git"
#使用ssh免密方式更新
gitHttp="git@gitee.com:pancru/panchaoru.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#git reset --hard 放弃本地修改
#git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点
#git reset --hard origin/develop
#查看所有分支:git branch -a
#获取最新记录
echo "远程仓库最新记录:"
#git fetch 拉取所有更新不同步
git fetch --all
#git fetch origin develop 拉取指定分支,暂时测试打印不到新记录
#git log --graph --all -1
#git log --graph --all查看所有分支的提交修改
echo "远程仓库最新记录:"
#git log remotes/origin/develop --oneline -1 查看拉取最新的一条记录--无格式
#查看拉取最新的一条记录--有格式
git log remotes/origin/develop --graph --all -1
echo "本地仓库(不包含未合并内容)简洁最新记录:"
git log --oneline -1
#拉取更新
git pull origin develop
#设置目录权限
chown -R www:www $gitPath
echo "本地仓库最新记录:"
git log -1
echo "End"
exit
else
echo "该项目路径不存在"
echo "本地仓库最新记录"
git log -1
echo "End"
exit
fi
-------------------以下是另一种:
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径
gitPath="/www/wwwroot/xf-admin.phpmb.cc"
#git 网址
gitHttp="https://gitee.com/lisona/newbee.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#拉取最新的项目文件
git reset --hard origin/master
git pull
#设置目录权限
chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
-------------------以下是另一种(直客源在用):
#!/bin/bash
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在 $1 为gitee 钩子 param参数值,为方便多项目管理$1把仓库名、服务器根目录名、钩子名一致
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径 上面创建的abc目录
gitPath="/www/wwwroot/dev-api.zhikeyuan.com"
#git 两种地址都可以
#gitHttp="https://gitee.com/pancru/$1.git"
#使用ssh免密方式更新
gitHttp="git@e.coding.net:zhikeyuan/zhikeyuan/zhikeyuan.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#git reset --hard 放弃本地修改
#git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点
#git reset --hard origin/develop
#查看所有分支:git branch -a
#获取最新记录
echo "远程仓库最新记录:"
#git fetch 拉取所有更新不同步
git fetch --all
#git fetch origin dev 拉取指定分支,暂时测试打印不到新记录
#git log --graph --all -1
#git log --graph --all查看所有分支的提交修改
echo "远程仓库最新记录:"
#git log remotes/origin/dev --oneline -1 查看拉取最新的一条记录--无格式
#查看拉取最新的一条记录--有格式
git log remotes/origin/dev --graph --all -1
echo "本地仓库(不包含未合并内容)简洁最新记录:"
git log --oneline -1
#git reset --hard origin/dev
#拉取更新
git pull origin dev
#设置目录权限
chown -R www:www $gitPath
echo "本地仓库最新记录:"
git log -1
echo "End"
exit
else
echo "该项目路径不存在"
echo "本地仓库最新记录"
git log -1
echo "End"
exit
fi
出自:https://blog.csdn.net/PanChaoRu/article/details/112389247