宝塔自动拉取git

服务器环境:CentOS 8
项目目录: /www/wwwroot/www (www变量,自定义)
远程git版本库: 码云

步骤:

1. 准备工作

服务器中没有git,可以自行安装

安装命令
yum install git

已安装的可以查看git版本
git --version

2. 安装webhook

安装webhook

3. 点击设置-》添加-》输入名称和执行脚本

webhook脚本制作

注意:1.名称必须与码云上的项目名称一致,还要去拉取下来后的文件夹名称一致
   2.执行脚本如下(不做修改)

#!/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/$1"
#git 网址
gitHttp="https://gitee.com/isu5cn/$1.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

提交即可

5. 配置码云

第一步:打开码云,找到项目文件对应的位置

码云配置webhook位置

第二步:打开webhook密钥

webhook密钥

第三步:将WebHook配置 填写完成后保存

码云填写WebHook配置

4. 重点

为了避免git pull 输入用户名密码,先把用户名密码加上

cd /www/wwwroot/ 下   //使用git克隆
git clone https://gitee.com/isu5cn/自己的项目名称.git  //码云里有克隆链接,避免出现错误,使用https方式

git config --global user.name "用户名"
git config --global user.email "邮箱"
git config --global credential.helper store

//会生成.gitconfig 的文件,查看
cat ~/.gitconfig  //显示内容

[user]
        name = 输入的用户名
        email = 输入的邮箱
[credential]
        helper = store
//第一次pull会提示输入用户名密码
[root@iZ25mi9h7ayZ test]# git pull
Username for 'https://gitee.com': xxxx@xxxx.com
Password for 'https://xxxx@xxxx.com@gitee.com':输入正确密码(看不到输入内容)
//生成.git-credentials 隐藏文件
cat ~/.git-credentials
https://Username:Password@gitee.com
 
vi ~/.git-credentials
可加多个用户名密码

当pull 之后查看文件是否有改变,也可以查看WebHook日志


WebHook日志
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容