宝塔利用 Git + WebHook 实现与码云同步【自动部署】
2024-09-11
15
1. 将项目拉取到云服务器2. 配置 SSH 公共密钥3. 宝塔安装webhook4. 配置 gitee WebHook5. 测试同步
1. 将项目拉取到云服务器
拉取指定分支到云服务器
git clone -b 分支名 仓库地址
git clone -b liang https://gitee.com/holyking/test.git
配置永久记住密码
git config --global credential.helper store
2. 配置 SSH 公共密钥
生成 SSH 密钥, 一路回车
ssh-keygen -t rsa
查看 SSH 公钥
cat ~/.ssh/id_rsa.pub
配置 gitee 仓库的 部署公钥
3. 宝塔安装webhook
脚本文件
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#git分支名称
branch="liang"
#git项目路径
gitPath="/www/wwwroot/ft.itqaq.com/test"
#git 仓库地址
gitHttp="https://gitee.com/holyking/test.git"
#gitHttp="http://192.168.2.20/llh/$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/$branch
git remote add origin $gitHttp
git branch --set-upstream-to=origin/$branch $branch
sudo git reset --hard origin/$branch
sudo git pull $gitHttp 2>&1
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/$branch
sudo git pull gitHttp 2>&1
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi
脚本文件中的项目目录、git地址、git分支名替换成自己的
# 远程分支
branch="master"
# 换成自己宝塔项目根目录
gitPath="/www/wwwroot/test"
# gitee 仓库地址
gitHttp="https://gitee.com/holyking/test.git"
4. 配置 gitee WebHook
复制宝塔的 WebHook 提供的URL和密钥
在 gitee 仓库的 WebHook 中添加 WebHook
5. 测试同步
码云仓库随意改个文件保存一下, 生成新的提交记录, 看云服务器上有没有同步更新
更新于:8天前赞一波!
相关文章
- 如何找回宝塔面板登录地址、账号和密码
- Git 行尾设置须知
- git 原理初探
- git remote 命令详解
- git diff 命令详解
- git reset 回退版本(版本穿梭)
- git log 命令
- 腾讯云安装宝塔面板
- git branch 命令详解
- git 设置记住密码和清除密码
- Git 的 GUI 图形界面管理工具
- git pull 从远程获取代码并合并本地的版本
- git restore 放弃更改、取消暂存
- 什么是宝塔Linux
- git config 配置提交人信息(用户名和邮箱)
- Git出现两条重复的提交记录
- Git正确的提交代码流程
- Git rebase是什么意思?
- Git里rebase和merge的区别?
- request merge和squash merge的区别
文章评论
全部评论