图集1/17

正文 4748字数 75,514阅读


添加服务器公钥
使用公钥,这样就不用输入用户名和密码了

生成公钥
如何生成公钥
生成命令
ssh-keygen -t rsa -C "邮箱地址"
Run code
Cut to clipboard

    查看公钥
    cat ~/.ssh/id_rsa.pub
    Run code
    Cut to clipboard

      把公钥内容复制粘贴到上一步的文本框里,点击添加即可

      在服务器拉取gitee代码(使用ssh链接)
      git clone git@gitee.com:svipmeng/autopulltest.git
      Run code
      Cut to clipboard


        webhook插件的安装与配置
        Run code
        Cut to clipboard

          在宝塔软件商店搜索 webhook并安装。
          点击设置,添加hook
          执行脚本如下
          #!/bin/bash echo "" #输出当前时间 date --date='0 days ago' "+%Y-%m-%d %H:%M:%S" echo "-------开始-------" #判断宝塔WebHook参数是否存在 if [ ! -n "$1" ]; then echo "param参数错误" echo "End" exit fi #git项目路径 gitPath="/www/wwwroot/dev/$1" #git 网址 gitHttp="git@gitee.com:svipmeng/$1.git" echo "路径:$gitPath" #判断项目路径是否存在 if [ -d "$gitPath" ]; then cd $gitPath #判断是否存在git目录 if [ ! -d ".git" ]; then echo "在该目录下克隆 git" git clone $gitHttp gittemp mv gittemp/.git . rm -rf gittemp fi #拉取最新的项目文件 #拉取最新的项目文件 git reset --hard origin/master #git clean -f git pull origin master echo "拉取完成" #执行npm #执行编译 #npm run build #设置目录权限 chown -R www:www $gitPath echo "-------结束--------" exit else echo "该项目路径不存在" echo "End" exit fi
          Run code
          Cut to clipboard



            配置gitee仓库的
            点击上步中的查看秘钥,将参数填写到gitee仓库的WebHook上就可以了

            gitee代码通过宝塔自动同步到服务器

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

            仓库的下载链接如果
            HTTPS错误,则使用 git@gitee.com:xxx/xxxx.git
            如上git@gitee.com:svipmeng/$1.git,下面这个https://gitee.com/xxx/$1.git连接不成功


            安装git
            yum install git
            Run code
            Cut to clipboard


              生成公钥,输入下面命令后回车三下
              ssh-keygen -t rsa
              Run code
              Cut to clipboard

                查看公钥,按顺序输入下面代码,最后一个是获取密钥,cat 后面是公钥文件名
                cd ~/.ssh ls cat id_rsa.pub
                Run code
                Cut to clipboard

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


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


                  宝塔安装webhook
                  打开软件商店,安装webhook

                  点击进去安装好的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
                  Run code
                  Cut to clipboard


                    点击查看秘钥



                    配置Gitee的WebHooks
                    进入仓库的WebHooks功能页面


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

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


                    在宝塔面板的终端设置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 //显示内容
                    Run code
                    Cut to clipboard


                      正确显示的页面


                      进入到 www/wwwroot 目录下(通常文件都会放这里,也可以自己选择目录),然后clone
                      cd /www/wwwroot/ git clone https://gitee.com/XXX/XXX.git //clone后面是下载链接
                      Run code
                      Cut to clipboard

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

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


                        宝塔里查看WebHook日志


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

                        异常处理
                        如果通过ftp去修改文件,在git又没有同步设置,会导致有冲突然后同步不过去
                        解决的方案
                        1、强制同步回之前的版本,需要执行的命令
                        git fetch --all 拉取所有更新 git reset --hard origin/master 本地代码同步线上最新版本(会覆盖本地所有与远程仓库上同名的文件 git pul
                        Run code
                        Cut to clipboard

                          也可以这样输入
                          git强制覆盖本地命令(单条执行): git fetch --all && git reset --hard origin/master && git pull
                          Run code
                          Cut to clipboard


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