服务器安装的宝塔环境,代码放在了gitee上面,每次更新都要手动拉去,肯定不现实,于是需要自动同步到服务器这个功能~
第一步:创建gitee仓库
(PS:点击gitee右上角+创建,这都不会,下面没必要看了~)
第二步:配置gitee公钥
由于服务器git每次pull都需要输入账号密码,在自动化中不现实,通过公钥的配置就不用输入账号密码了~
点击仓库的管理按钮-添加公钥,粘贴公钥,点击添加保存即可,如图:
(PS:这是正确填写公钥的格式,标题自动生成的,下面文本框粘贴进去就可以了,马赛克图的是我的邮箱地址,自己生成的就是自己的邮箱地址,下面讲解怎么生成公钥~)
第三步:生成公钥
1、打开终端连接到服务器
2、确认服务器安装了git,没有就安装~(不懂自行百度)
3、输入生成公钥的命令
ssh-keygen -t rsa -C "xxx@xx.com"
(PS: xxx@xx.com就是你gitee的邮箱地址,我的就是ztxxxx@qq.com,你的自己填~)
基本就是一路回车,遇到y/nJ就填y然后回车,如图:
根据生成步骤可以了解到公钥的生成地址,我的在 ~/.ssh/id_rsa.pub,因此通过cat命令就可以查看~
cat ~/.ssh/id_rsa.pub
将公钥复制,然后粘贴到上面第二步gitee的公钥里面,添加保存即可~
第四步:git拉取代码到服务器(PS:第一次需要手动拉取)
1、进入到宝塔的站点目录
2、执行git拉取命令(特别注意:仓库地址选择SSH,不要选择HTTPS)
git clone git@gitee.com:xxxx/xx.git ./xx
(PS:这里xxxx是你的仓库目录,xx是仓库,是点击gitee代码克隆/下载按钮复制而来的,再次强调选择SSH,公钥是配置的SSH的~ )
第五步:宝塔安装webhook插件并配置
1、在宝塔软件商店搜索“webhook”关键词,点击安装(安装了的跳过)
2、点击webhook的设置-添加,如图:
(PS:标题自己随便填,时间久了你记得是什么就行,执行脚本复制下面的代码)
#!/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/$1" #git 网址 gitHttp="https://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
特别注意:你需要确认你的项目路径与仓库目录
#git项目路径 gitPath="/www/wwwroot/$1" #git 网址 gitHttp="https://gitee.com/xxx/$1.git" //自己仓库的链接
$1是变量,通过GET获取的,后面传参传参再讲,如果你的站点名称与仓库名称不一致,建议把站点改成固定的目录
我的测试服务器站点目录在/www/wwwroot/下面,你的不是就要改成你自己的
git网址xxx是你自己的git仓库目录,当然,你也可以直接复制代码仓库的地址粘贴替换
(PS:部分用户反馈,宝塔的添加那里的输入框可能会过滤代码,因此添加保存后务必点击编辑按钮查看代码的完整度,你也可以在编辑状态重新粘贴修改保存~)
第六步:配置gitee的webhook
1、点击gitee代码仓库中管理-webhook-添加
2、点击宝塔webhook的查看秘钥按钮,将密钥填入gitee的密码框中,将post路径填入gitee的POST路径框中
(PS:param=aaa 就是前面$1的参数,aaa你改成你的仓库名称,如果上面是写的固定的目录,没有用$1,这里就保留默认即可~)
到此就结束啦,可以在本地拉取与提交个文件测试下~
未经允许不得转载:小罗同学 » gitee同步到宝塔服务器