服务器环境:CentOS 8
项目目录: /www/wwwroot/www (www变量,自定义)
远程git版本库: 码云
步骤:
1. 准备工作
服务器中没有git,可以自行安装
安装命令
yum install git
已安装的可以查看git版本
git --version
2. 安装webhook
3. 点击设置-》添加-》输入名称和执行脚本
注意: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配置 填写完成后保存
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日志