宝塔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