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

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

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


拉取指定分支到云服务器

  1. git clone -b 分支名 仓库地址
  1. 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 实现与码云同步【自动部署】_第1张图片

配置 gitee 仓库的 部署公钥

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_第2张图片

 

3. 宝塔安装webhook


宝塔利用 Git + WebHook 实现与码云同步【自动部署】_第3张图片

 

脚本文件

  1. #!/bin/bash
  2. echo ""
  3. #输出当前时间
  4. date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
  5. echo "Start"
  6. #git分支名称
  7. branch="liang"
  8. #git项目路径
  9. gitPath="/www/wwwroot/ft.itqaq.com/test"
  10. #git 仓库地址
  11. gitHttp="https://gitee.com/holyking/test.git"
  12. #gitHttp="http://192.168.2.20/llh/$1.git" //多仓库的时候
  13. echo "Web站点路径:$gitPath"
  14. #判断项目路径是否存在
  15. if [ -d "$gitPath" ]; then
  16. cd $gitPath
  17. #判断是否存在git目录
  18. if [ ! -d ".git" ]; then
  19. echo "在该目录下克隆 git"
  20. sudo git clone $gitHttp gittemp
  21. sudo mv gittemp/.git .
  22. sudo rm -rf gittemp
  23. fi
  24. echo "拉取最新的项目文件"
  25. #sudo git reset --hard origin/$branch
  26. git remote add origin $gitHttp
  27. git branch --set-upstream-to=origin/$branch $branch
  28. sudo git reset --hard origin/$branch
  29. sudo git pull $gitHttp 2>&1
  30. echo "设置目录权限"
  31. sudo chown -R www:www $gitPath
  32. echo "End"
  33. exit
  34. else
  35. echo "该项目路径不存在"
  36. echo "新建项目目录"
  37. mkdir $gitPath
  38. cd $gitPath
  39. #判断是否存在git目录
  40. if [ ! -d ".git" ]; then
  41. echo "在该目录下克隆 git"
  42. sudo git clone $gitHttp gittemp
  43. sudo mv gittemp/.git .
  44. sudo rm -rf gittemp
  45. fi
  46. echo "拉取最新的项目文件"
  47. #sudo git reset --hard origin/$branch
  48. sudo git pull gitHttp 2>&1
  49. echo "设置目录权限"
  50. sudo chown -R www:www $gitPath
  51. echo "End"
  52. exit
  53. fi

脚本文件中的项目目录、git地址、git分支名替换成自己的

  1. # 远程分支
  2. branch="master"
  3. # 换成自己宝塔项目根目录
  4. gitPath="/www/wwwroot/test"
  5. # gitee 仓库地址
  6. gitHttp="https://gitee.com/holyking/test.git"
  7. 宝塔利用 Git + WebHook 实现与码云同步【自动部署】_第4张图片

 

4. 配置 gitee WebHook


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

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_第5张图片

在 gitee 仓库的 WebHook 中添加 WebHook

宝塔利用 Git + WebHook 实现与码云同步【自动部署】_第6张图片

 

5. 测试同步


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

你可能感兴趣的:(编程笔记,git,github,ssh)