使用 Git Hook 實現網站的自動部署

來源:互聯網
上載者:User

標籤:variable   遠程倉庫   amp   是你   lease   服務   它的   ble   很多   

自動化能解放人類的雙手,而且更重要的是,因為按照規定的流程來走,也減少了很多誤操作的產生。不知道大家平時都是怎麼樣更新自己生產環境的代碼的,FTP 覆蓋舊檔案、伺服器定時任務去 build 最新的源碼,還是有更進階的做法?

目前我在使用 Git Hook 來部署自己的項目。Git Hook 是 Git 提供的一個鉤子,能被特定的事件觸發後調用。其實,更通俗的講,當你設定了 Git Hook 後,只要你的遠程倉庫收到一次 push 之後,Git Hook 就能幫你執行一次 bash 指令碼。

下面是我使用 Git Hook 進行簡單的自動化部署,可能還有更進階的做法,大家自己去挖掘。

在伺服器初始化一個遠程 Git 倉庫

git init 和 git --bare init 初始化出來的倉庫是完全不一樣的,具體我 Google 了下,英文倒是理解了,但是要翻譯出中文卻不知道用什麼形容詞去稱呼這2種倉庫。

這裡我們要通過 git --bare init 初始化一個遠程倉庫

1234 $ cd ~$ mkdir testRepo$ cd testRepo$ git --bare init
在伺服器初始化一個本地 Git 倉庫

這個倉庫就是通過 git init 初始化出來最常見的本地倉庫,它的作用是拉去遠程倉庫(其實就在它旁邊)最新的源碼,然後在這個倉庫裡進行編譯,把代碼編譯到 www 目錄(網站的根目錄)。

1234567891011 $ cd ~$ mkdir testDeploy$ cd testDeploy$ git clone ~/testRepo #從遠程倉庫 clone 出源碼``` ### 為遠程倉庫設定 Hook ```bash$ cd ~/testRepo/hooks$ vim post-receive

post-receive 裡面的執行指令碼

123456789101112 #!/bin/shunset GIT_DIRDeployPath=/home/user/testDeployWwwPath=/home/wwwroot/testDeploy cd $DeployPathgit add . -A && git stashgit pull origin master # 下面這2步都是按照實際你自己添加的bash指令碼fis release -Dompd $WwwPath # 我使用的FIS,對前端代碼進行編譯qrsync /home/user/qiniutools/config.json # 使用七牛同步工具進行同步

最後,為 post-receive 添加可執行許可權

1 chmod +x post-receive
為本地倉庫添加 remote 源

這次的本地倉庫就真的是你開發機上面的本地了。在你原有 Git 項目裡面添加一條新的 remote 源,以後往這個 remote 源裡面 push 代碼就會自動觸發上面那 bash 指令碼了。

12 $ git remote add deploy [email protected]:/home/user/testRepo$ git push deploy master

 

https://dearb.me/archive/2015-03-30/automate-deploy-your-websites-with-git-hook/

1190000003836345?_ea=386770

 

使用 Git Hook 實現網站的自動部署

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.