gitee码云代码提交后宝塔服务器同步更新详细操作

打开宝塔服务器,进行操作

  • 首先进入宝塔终端看有无安装git


    image.png

    如果没有就自行安装一下,在终端输入安装指令

yum install git

生成公钥,输入下面命令后回车三下

ssh-keygen -t rsa

查看公钥,按顺序输入下面代码,最后一个是获取密钥,cat 后面是公钥文件名

cd ~/.ssh
ls
cat id_rsa.pub

复制绿色框部分全部内容,这就是生成的SSH密钥


image.png

gitee仓库,添加公钥

进入仓库管理,部署公钥管理,点击添加公钥

image.png

宝塔安装webhook

打开软件商店,安装webhook


image.png

点击进去安装好的webhook,添加关联钩子

#!/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
image.png

点击查看秘钥


image.png

image.png

配置Gitee的WebHooks

进入仓库的WebHooks功能页面


image.png

这部分看图片内容弄,需要注意的是URL最后的aaa必须最后一个是仓库名,前面可以根据自己想放的位置添加父级目录

把在宝塔的秘钥连接复制过来

image.png

将Gitee仓库clone到服务器的本地目录中

  • 复制仓库的下载链接
image.png
  • 在宝塔面板的终端设置git
git config --global user.name "用户名"
git config --global user.email "邮箱"
git config --global credential.helper store //会生成.gitconfig 的文件
cat .gitconfig   //如果报错: No such file or directory,就用下一行的代码
cat ~/.gitconfig  //显示内容

正确显示的页面


image.png

进入到 www/wwwroot 目录下(通常文件都会放这里,也可以自己选择目录),然后clone

cd /www/wwwroot/
git clone https://gitee.com/XXX/XXX.git  //clone后面是下载链接

第一次clone需要输入用户名和密码,注意:输入密码的时候是看不见内容的
当clone成功后,就已经是配置好了,可以在自己电脑上传文件到配置的仓库,检查下宝塔界面的文件里仓库目录下有没有自动更新刚上传的文件

也可以用下面的方法测试
在仓库的WebHooks功能页面点击测试,进入查看更多查看结果,中间是200则代表测试成功


image.png

宝塔里查看WebHook日志


image.png

总结
把服务器和Gitee仓库绑定同步更新后,平时的代码上传更方便,更新及时,服务器也会备份上一个版本,非常的方便好用

异常处理

如果通过ftp去修改文件,在git又没有同步设置,会导致有冲突然后同步不过去
解决的方案
1、强制同步回之前的版本,需要执行的命令

git fetch --all                拉取所有更新
git reset --hard origin/master  本地代码同步线上最新版本(会覆盖本地所有与远程仓库上同名的文件
git pul

也可以这样输入

git强制覆盖本地命令(单条执行):
    git fetch --all &&  git reset --hard origin/master && git pull
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容