准备工作:在宝塔应用商店中安装webhook,
在命令行中输入git --version看是否有安装git,如果没有,运行下面命令安装
yum install git
一、创建公钥
cd ~/.ssh
ls
看是否有 id_rsa.pub 文件 如果没有,用下面命令生成证书
ssh-keygen -t rsa -C "XXX@XXX.com"(XXX@XXX.com为你自己的git账号)
然后一路回车
生成完之后查看证书
cd ~/.ssh
ls
cat id_rsa.pub
二、添加公钥
在git上添加公钥,我是企业版,在仓库设置-部署公钥管理
三、宝塔安装webhook插件
进入宝塔软件商店,搜webhook 然后点安装
安装完之后进入设置页面
下面是脚本文件
#!/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/git/$1"
#git 网址
gitHttp="git@gitee>gitee.com:xxx/$1.git" //自己仓库的链接
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi
注意 你需要确认你的项目路径与仓库目录
$1是变量,通过GET获取的,后面传参传参再讲,如果你的站点名称与仓库名称不一致,建议把站点改成固定的目录
我的测试服务器站点目录在/www/wwwroot/下面,你的不是就要改成你自己的
git网址xxx是你自己的git仓库目录,当然,你也可以直接复制代码仓库的地址粘贴替换
(PS:部分用户反馈,宝塔的添加那里的输入框可能会过滤代码,因此添加保存后务必点击编辑按钮查看代码的完整度,你也可以在编辑状态重新粘贴修改保存~)
点击宝塔webhook的查看秘钥按钮,将密钥填入gitee>gitee的密码框中,将post路径填入gitee>gitee的POST路径框中
五、将Gitee仓库clone到服务器的本地目录中
进入到你要放置的目录中 然后git clone git@gitee>gitee.com:xxx/xxx.git(注意,这里要复制SSH地址clone不要用HTTPS)
然后试改个东西推送下
如果出现如下信息,则说明更新成功了