国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:02:38
字體:
來源:轉載
供稿:網友

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

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

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

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

服務器端操作

首先創建一個裸庫,為什么是裸庫?因為這個庫不是真正用來修改的,我們也不允許在服務器上修改代碼,我們只是把它當作一個代碼中轉的地方:

復制代碼 代碼如下:

cd gitroot
mkdir projectname
cd projectname
git init --bare

添加我們的hook

復制代碼 代碼如下:

cd /hooks
touch post-receive

編輯post-receive的內容為下面的,其中sites/projectname,是我們存放網站代碼地方
復制代碼 代碼如下:

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

本地git的操作

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

復制代碼 代碼如下:

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

可以強化的地方

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雷州市| 临洮县| 浏阳市| 旅游| 迭部县| 清水县| 平利县| 麻栗坡县| 晋宁县| 西盟| 辽宁省| 沂水县| 孝感市| 乐山市| 托克逊县| 桐柏县| 长沙市| 慈溪市| 新巴尔虎左旗| 永善县| 新泰市| 温宿县| 潢川县| 城固县| 靖宇县| 县级市| 敦化市| 湘阴县| 班玛县| 泰来县| 双鸭山市| 临夏市| 云梦县| 竹北市| 兴仁县| 嫩江县| 潜江市| 苗栗县| 姚安县| 玛沁县| 揭阳市|