打開寶塔服務器,進行操作
-
首先進入寶塔終端看有無安裝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