佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 使用git代替FTP部署代碼到服務(wù)器的例子

使用git代替FTP部署代碼到服務(wù)器的例子

熱門標簽:美圖手機 呼叫中心市場需求 網(wǎng)站文章發(fā)布 銀行業(yè)務(wù) 服務(wù)器配置 檢查注冊表項 智能手機 鐵路電話系統(tǒng)

本地開發(fā)完成后,通常會在服務(wù)器上部署,有人會使用ftp,有人會使用scp, ftp和scp的時候為了方便我們通過還要tar或者zip一下, 這些做法也很不錯,但是它有一些問題

1.全部更新,不管某些文件是否修改,都要重新傳一下服務(wù)器,浪費時間與流量
2.多臺服務(wù)器的重復(fù)上傳
3.代碼更新后,后續(xù)的一些操作不夠自動化

上面的問題可以通過ssh直接遠程執(zhí)行命令來解決,但是需要寫一些shell腳本, 有沒有更簡單更高效的方法呢?有,那就是使用版本版本管理工具的hook!

這里我說是版本管理工具而不是git,是因為svn、git、hg都是有相應(yīng)的hook的, 原理大同小異。下面是Git詳細的思路。

服務(wù)器端操作

首先創(chuàng)建一個裸庫,為什么是裸庫?因為這個庫不是真正用來修改的,我們也不允許在服務(wù)器上修改代碼,我們只是把它當(dāng)作一個代碼中轉(zhuǎn)的地方:

復(fù)制代碼 代碼如下:

cd gitroot
mkdir projectname
cd projectname
git init --bare

添加我們的hook

復(fù)制代碼 代碼如下:

cd /hooks
touch post-receive

編輯post-receive的內(nèi)容為下面的,其中sites/projectname,是我們存放網(wǎng)站代碼地方
復(fù)制代碼 代碼如下:

env -i git archive master | tar -x -C /sites/projectname
echo "遠程更新完畢"

本地git的操作

本地我們只需要添加一個遠程庫,在需要部署的時候push到遠程庫就行了,下面我們添加了一個名為publish的遠程庫

復(fù)制代碼 代碼如下:

git remote add publish username@xx.xx.xx.xx:/home/gitroot/projectname
git push publish master

可以強化的地方

這里演示的是一個簡單的小網(wǎng)站的部署過程,復(fù)雜的情況下我們還可以添加靜態(tài)資源版本更新,服務(wù)器重啟等等,舉一反三, 最大程序自動化我們的工作。

您可能感興趣的文章:
  • 詳解在Linux下搭建Git服務(wù)器
  • 詳解在CentOS下搭建自己的Git服務(wù)器
  • 在Linux下搭建Git服務(wù)器步驟
  • 阿里云Linux-CentOS系統(tǒng)下-搭建Git服務(wù)器詳解
  • 在Linux下搭建Git服務(wù)器的方法詳解
  • Git 教程之服務(wù)器搭建詳解
  • 在DigitalOcean的服務(wù)器上部署flaskblog應(yīng)用
  • 一鍵備份gitolite服務(wù)器的Shell腳本
  • Git 刪除遠程服務(wù)器文件同時保留本地文件實例詳解

標簽:長治 上海 沈陽 河南 樂山 滄州 新疆 紅河

巨人網(wǎng)絡(luò)通訊聲明:本文標題《使用git代替FTP部署代碼到服務(wù)器的例子》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    吴桥县| 邯郸县| 内丘县| 通州市| 城步| 贵州省| 吉水县| 东乡族自治县| 兰溪市| 大港区| 鄱阳县| 馆陶县| 苍山县| 车致| 凤山县| 房产| 象山县| 花垣县| 和田市| 文水县| 富宁县| 巴林右旗| 饶河县| 双鸭山市| 石城县| 威宁| 汾阳市| 满城县| 呼图壁县| 梅州市| 宜兴市| 磴口县| 稻城县| 铜鼓县| 孟连| 册亨县| 金门县| 武鸣县| 名山县| 安康市| 图木舒克市|