做網(wǎng)站哪個(gè)系統(tǒng)最好今日短新聞20條
將本地項(xiàng)目上傳到騰訊云輕量應(yīng)用服務(wù)器并實(shí)現(xiàn)后續(xù)的推送更新,具體步驟如下:
- 在本地項(xiàng)目目錄下初始化 Git 倉(cāng)庫(kù):
cd 項(xiàng)目目錄
git init
- 將項(xiàng)目文件添加到 Git 倉(cāng)庫(kù)并提交:
git add .
git commit -m "Initial commit"
- 在騰訊云服務(wù)器上安裝 Git:
# 對(duì)于 CentOS 系統(tǒng)
yum install git# 對(duì)于 Ubuntu 系統(tǒng)
apt-get install git
- 登錄到服務(wù)器并創(chuàng)建一個(gè)裸倉(cāng)庫(kù)(bare repository):
cd /項(xiàng)目存放目錄
git init --bare 項(xiàng)目名.git
這個(gè)時(shí)候會(huì)有一個(gè)項(xiàng)目名.git的文件夾(這里項(xiàng)目名稱為wechat-push,后續(xù)均以這個(gè)為例講解),里面包含的是init初始化的9個(gè)文件或文件夾,例如下面的wechat-push.git文件夾
5. 在本地項(xiàng)目倉(cāng)庫(kù)添加遠(yuǎn)程倉(cāng)庫(kù)地址:
git remote add origin root@服務(wù)器IP:/項(xiàng)目存放目錄/項(xiàng)目名.git
- 將本地項(xiàng)目推送到遠(yuǎn)程倉(cāng)庫(kù):
git push -u origin master
- 在服務(wù)器上克隆遠(yuǎn)程倉(cāng)庫(kù)到項(xiàng)目存放目錄:
cd /項(xiàng)目存放目錄
git clone /項(xiàng)目存放目錄/項(xiàng)目名.git
比如cd /www/wwwroot/wechat-push在這個(gè)目錄下執(zhí)行g(shù)it clone /www/wwwroot/wechat-push/wechat-push.git
這個(gè)時(shí)候就將項(xiàng)目源碼下載到對(duì)應(yīng)目錄了
至此,項(xiàng)目已成功上傳到服務(wù)器。以后每次在本地修改項(xiàng)目后,只需執(zhí)行以下命令推送到遠(yuǎn)程服務(wù)器:
git add .
git commit -m "Your commit message"
git push
在服務(wù)器端,進(jìn)入項(xiàng)目存放目錄下的項(xiàng)目文件夾,拉取更新:
cd /項(xiàng)目存放目錄/項(xiàng)目名
git pull
這樣,就可以實(shí)現(xiàn)在本地修改項(xiàng)目后推送到遠(yuǎn)程服務(wù)器的目的。
但是現(xiàn)在還不能實(shí)現(xiàn)本地推送之后,遠(yuǎn)程服務(wù)器自動(dòng)更新,還需要在服務(wù)器端手動(dòng)拉取代碼,接下來(lái)講解如何本地push之后服務(wù)器端項(xiàng)目自動(dòng)拉取最新代碼。
為了實(shí)現(xiàn)本地 push 之后服務(wù)器自動(dòng)同步更新,需要在服務(wù)器的 Git 裸倉(cāng)庫(kù)中添加一個(gè)鉤子(hook)腳本。這里以使用 post-receive 鉤子為例:
- 在服務(wù)器的 Git 裸倉(cāng)庫(kù)中創(chuàng)建
post-receive
鉤子腳本:
cd /項(xiàng)目存放目錄/項(xiàng)目名.git/hooks
touch post-receive
chmod +x post-receive
touch是創(chuàng)建文件夾的命令,post-receive 是 Git 鉤子腳本的一種類型,它會(huì)在接收到推送(push)事件后觸發(fā)。
chmod +x post-receive:chmod 命令用于修改文件權(quán)限。+x 表示添加可執(zhí)行權(quán)限。這里用它為 post-receive 腳本添加可執(zhí)行權(quán)限,這樣 Git 才能在接收到推送時(shí)運(yùn)行此腳本。
- 編輯
post-receive
腳本,將以下內(nèi)容添加到腳本中(請(qǐng)?zhí)鎿Q為實(shí)際的項(xiàng)目存放目錄和項(xiàng)目名):
#!/bin/sh
TARGET="/項(xiàng)目存放目錄/項(xiàng)目名"
GIT_DIR="/項(xiàng)目存放目錄/項(xiàng)目名.git"
BRANCH="master"while read oldrev newrev ref
do# 只有當(dāng)推送的是 master 分支時(shí)才執(zhí)行if [ "$ref" = "refs/heads/$BRANCH" ];thenecho "Ref $ref received. Deploying ${BRANCH} branch to production..."git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -felseecho "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."fi
done
- 保存并關(guān)閉腳本。
現(xiàn)在,每當(dāng)你從本地推送 master 分支到服務(wù)器時(shí),服務(wù)器會(huì)自動(dòng)將項(xiàng)目文件更新到網(wǎng)站根目錄。這樣就實(shí)現(xiàn)了本地 push 之后服務(wù)器同步更新的需求。