- 在git上创建一个新的项目仓库
- 在服务器上安装WebHook,以宝塔WebHook为例
- 安装成功后添加hook,并编写执行脚本.以以下脚本为例
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------开始-------"
#判断宝塔WebHook参数是否存在
# 名称必须与码云上的项目名称一致,还要去拉取下来后的文件夹名称一致
project = "laravel_relation"
# 需要同步的分支名称
branch = "dev"
if [ ! -n "$project" ];
then
echo "param参数错误"
echo "End"
exit
fi
#服务器 git 项目路径
gitPath="/www/wwwroot/$project"
#码云项目 git 网址
gitHttp="git@gitee.com:NianTianDiZhiYouYou/$project.git"
echo "路径:$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/$branch
#git clean -f
git pull origin $branch
echo "拉取完成"
#执行npm
#执行编译
#npm run build
#设置目录权限
chown -R www:www $gitPath
echo "-------结束--------"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
-
填写git公钥
-
在服务器端执行命令生成公钥文件
ssh-keygen -t ed25519 # 一直回车到底
生成的公钥文件一般在 /root/.ssh/id_ed25519.pub ,打开文件复制内容
在git上添加新的公钥 安全设置→SSH公钥 添加复制的公钥
可以在项目目录下 执行 git clone ssh地址 看看能不能克隆项目 如果可以 表示配置成功
-
配置git 的 webhooks在仓库的管理中可以找到 之后添加地址和秘钥
提交一次相应分支的代码测试是否同步