• 1. 将项目拉取到云服务器
  • 2. 配置 SSH 公共密钥
  • 3. 宝塔安装webhook
  • 4. 配置 gitee WebHook
  • 5. 测试同步

1. 将项目拉取到云服务器


拉取指定分支到云服务器

  1. ​git clone -b 分支名 仓库地址​
  2. ​git clone -b liang https://gitee.com/holyking/test.git​

配置永久记住密码

  1. ​git config --global credential.helper store​

2. 配置 SSH 公共密钥


生成 SSH 密钥, 一路回车

  1. ​ssh-keygen -t rsa​

查看 SSH 公钥

  1. ​cat ~/.ssh/id_rsa.pub​

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_ssh

配置 gitee 仓库的 部署公钥

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_github_02

 

3. 宝塔安装webhook


宝塔利用 Git + WebHook 实现与码云同步【自动部署】_ssh_03

 

脚本文件

​​#!/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"​​

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_git_04

 

4. 配置 gitee WebHook


复制宝塔的 WebHook 提供的URL和密钥

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_ssh_05

在 gitee 仓库的 WebHook 中添加 WebHook

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_github_06

 

5. 测试同步


码云仓库随意改个文件保存一下, 生成新的提交记录, 看云服务器上有没有同步更新