打開(kāi)寶塔服務(wù)器窄坦,進(jìn)行操作
-
首先進(jìn)入寶塔終端看有無(wú)安裝git
image.png
如果沒(méi)有就自行安裝一下鸭津,在終端輸入安裝指令
yum install git
生成公鑰,輸入下面命令后回車(chē)三下
ssh-keygen -t rsa
查看公鑰盏阶,按順序輸入下面代碼名斟,最后一個(gè)是獲取密鑰魄眉,cat 后面是公鑰文件名
cd ~/.ssh
ls
cat id_rsa.pub
復(fù)制綠色框部分全部?jī)?nèi)容坑律,這就是生成的SSH密鑰
gitee倉(cāng)庫(kù)脾歇,添加公鑰
進(jìn)入倉(cāng)庫(kù)管理藕各,部署公鑰管理,點(diǎn)擊添加公鑰
寶塔安裝webhook
打開(kāi)軟件商店激况,安裝webhook
點(diǎn)擊進(jìn)去安裝好的webhook,添加關(guān)聯(lián)鉤子
#!/bin/bash
echo ""
#輸出當(dāng)前時(shí)間
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判斷寶塔WebHook參數(shù)是否存在
if [ ! -n "$1" ];
then
echo "param參數(shù)錯(cuò)誤"
echo "End"
exit
fi
#git項(xiàng)目路徑
gitPath="/www/wwwroot/$1"
#git 網(wǎng)址
gitHttp="https://gitee.com/xxx/$1.git" //自己倉(cāng)庫(kù)的鏈接
echo "Web站點(diǎn)路徑:$gitPath"
#判斷項(xiàng)目路徑是否存在
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 "拉取最新的項(xiàng)目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "設(shè)置目錄權(quán)限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "該項(xiàng)目路徑不存在"
echo "新建項(xiàng)目目錄"
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 "拉取最新的項(xiàng)目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "設(shè)置目錄權(quán)限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi
點(diǎn)擊查看秘鑰
配置Gitee的WebHooks
進(jìn)入倉(cāng)庫(kù)的WebHooks功能頁(yè)面
這部分看圖片內(nèi)容弄,需要注意的是URL最后的aaa必須最后一個(gè)是倉(cāng)庫(kù)名灿渴,前面可以根據(jù)自己想放的位置添加父級(jí)目錄
把在寶塔的秘鑰連接復(fù)制過(guò)來(lái)
將Gitee倉(cāng)庫(kù)clone到服務(wù)器的本地目錄中
- 復(fù)制倉(cāng)庫(kù)的下載鏈接
- 在寶塔面板的終端設(shè)置git
git config --global user.name "用戶(hù)名"
git config --global user.email "郵箱"
git config --global credential.helper store //會(huì)生成.gitconfig 的文件
cat .gitconfig //如果報(bào)錯(cuò): No such file or directory骚露,就用下一行的代碼
cat ~/.gitconfig //顯示內(nèi)容
正確顯示的頁(yè)面
進(jìn)入到 www/wwwroot 目錄下(通常文件都會(huì)放這里棘幸,也可以自己選擇目錄)误续,然后clone
cd /www/wwwroot/
git clone https://gitee.com/XXX/XXX.git //clone后面是下載鏈接
第一次clone需要輸入用戶(hù)名和密碼扫茅,注意:輸入密碼的時(shí)候是看不見(jiàn)內(nèi)容的
當(dāng)clone成功后葫隙,就已經(jīng)是配置好了,可以在自己電腦上傳文件到配置的倉(cāng)庫(kù)愕鼓,檢查下寶塔界面的文件里倉(cāng)庫(kù)目錄下有沒(méi)有自動(dòng)更新剛上傳的文件
也可以用下面的方法測(cè)試
在倉(cāng)庫(kù)的WebHooks功能頁(yè)面點(diǎn)擊測(cè)試慧起,進(jìn)入查看更多查看結(jié)果蚓挤,中間是200則代表測(cè)試成功
寶塔里查看WebHook日志
總結(jié)
把服務(wù)器和Gitee倉(cāng)庫(kù)綁定同步更新后灿意,平時(shí)的代碼上傳更方便缤剧,更新及時(shí),服務(wù)器也會(huì)備份上一個(gè)版本汗销,非常的方便好用
異常處理
如果通過(guò)ftp去修改文件弛针,在git又沒(méi)有同步設(shè)置,會(huì)導(dǎo)致有沖突然后同步不過(guò)去
解決的方案
1宙枷、強(qiáng)制同步回之前的版本茧跋,需要執(zhí)行的命令
git fetch --all 拉取所有更新
git reset --hard origin/master 本地代碼同步線上最新版本(會(huì)覆蓋本地所有與遠(yuǎn)程倉(cāng)庫(kù)上同名的文件
git pul
也可以這樣輸入
git強(qiáng)制覆蓋本地命令(單條執(zhí)行):
git fetch --all && git reset --hard origin/master && git pull