一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Ruby - 使用git代替FTP部署代碼到服務器的例子

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

2020-04-18 11:03jser.me Ruby

這篇文章主要介紹了使用git代替FTP部署代碼到服務器的例子,這種方法可以節省流量、節省時間,需要的朋友可以參考下

本地開發完成后,通常會在服務器上部署,有人會使用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 [email protected]:/home/gitroot/projectname
git push publish master

 

可以強化的地方

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

延伸 · 閱讀

精彩推薦
  • RubyRuby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼

    Ruby進行文件信息輸出實例代碼,數據是隨機的,所以每次的記錄都會不同。 ...

    ruby教程網2962020-04-10
  • RubyRuby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

    這篇文章主要介紹了Ruby迭代器的7種技巧分享,Ruby中的迭代器非常人性化,本文既是講解了7個技巧也是講解了7種迭代器,需要的朋友可以參考下 ...

    腳本之家4782020-04-20
  • RubyCentOS中配置Ruby on Rails環境

    CentOS中配置Ruby on Rails環境

    經過一個上午的折騰,終于把ROR環境在CentOS中搞定,繞了很多彎路,把文章寫下來總結一下 ...

    可樂加糖4762020-04-12
  • Ruby剖析 Ruby 訪問控制

    剖析 Ruby 訪問控制

    前面,我們說 Ruby 沒有函數,只有方法.而且實際上有不止一種方法.這一節我們介紹 訪問控制 (accesscontrols). 想想當我們在最高層而不是在一個類的定義里定義...

    ruby教程網3572020-04-08
  • RubyRuby簡潔學習筆記(一):字符串、數字、類和對象

    Ruby簡潔學習筆記(一):字符串、數字、類和對象

    這篇文章主要介紹了Ruby簡潔學習筆記(一):字符串、數字、類和對象,本文是學習筆記第一篇,需要的朋友可以參考下 ...

    腳本之家2472020-04-20
  • Ruby簡要說明Ruby中的迭代器

    簡要說明Ruby中的迭代器

    這篇文章主要介紹了Ruby中的迭代器,迭代器的概念在動態語言的編程中十分重要,文章中介紹了Ruby中的each迭代器和collect迭代器,需要的朋友可以參考下 ...

    goldensun2772020-04-25
  • RubyRuby環境下安裝使用bundler來管理多版本的gem

    Ruby環境下安裝使用bundler來管理多版本的gem

    這篇文章主要介紹了Ruby環境下安裝使用bundler來管理多版本的gem的方法,舉了Ruby On Rails中的應用實例來進行演示,需要的朋友可以參考下 ...

    日拱一卒4332020-05-10
  • RubyRuby設計模式編程中使用Builder建造者模式的實例

    Ruby設計模式編程中使用Builder建造者模式的實例

    這篇文章主要介紹了Ruby設計模式編程中使用Builder建造者模式的實例,建造者模式將一個復雜對象的構造與它的表示分離,使同樣的構建過程可以創建不同的表...

    范孝鵬2192020-05-07
主站蜘蛛池模板: av72成人| 美女福利视频午夜在线 | 国产精品合集一区二区 | 国产精品视频在线观看 | 成人男女啪啪免费观看网站 | 东京干福利 | sese在线观看 | 久久成人永久免费播放 | 羞羞一区二区三区四区片 | 猫咪社区在线播放 | 特黄一级 | 亚欧毛片基地国产毛片基地 | 色综合综合 | 国产精品视频色拍拍 | 特级淫片大乳女子高清视频 | 国产精品免费网站 | 国产99视频精品免费视频免里 | 波多野结中文字幕在线69视频 | 欧美日韩国产亚洲人成 | 精品亚洲欧美中文字幕在线看 | 女同变态 中文字幕 | 久久99精品涩AV毛片观看 | 成人在线播放 | xxx95日本老师xxx学生 | 欧美va天堂va视频va在线 | 欧美久久影院 | 白白国产永久免费视频 | 3黑人巨大vs北岛玲 3d肉浦团在线观看 3d动漫免费 | 亚洲国产欧美日韩在线一区 | 小鸟酱喷水 | 色婷亚洲 | 精品国产91久久久久久久 | 91亚洲精品第一综合不卡播放 | 99久久伊人一区二区yy5099 | 欧美夜夜精品一级爽 | 午夜影视在线观看 | 成人精品第一区二区三区 | 国产成人精品免费2021 | 奇米影视先锋 | 911亚洲精品国内自产 | 国产天天在线 |