Deployment

Git遠端到遠端

  • February 16, 2012

我試圖弄清楚如何使用 git 來部署站點。

理論上有3種聯繫:

  1. **$$ local machine $$**我的本地編碼機器
  2. **$$ gitolite server $$**使用 Gitolite 的私人倉庫託管
  3. **$$ web server $$**帶有複製的 VPS 託管 –bare

git push的程式碼來自**$$ local machine $$$$ gitolite server $$但是我如何從$$ gitolite $$對我$$ web server $$**

我想自動化這個,所以我所要做的就是完成一個git push.

是設置掛鉤的最佳方式**$$ gitolate server $$回購執行post-updatepost-receive腳本?但既然它是一個--bare回購,這是否意味著我需要git push$$ gitolite server $$$$ web server $$**的複製回購,因為我無法執行,git pull因為--bare回購沒有工作樹?

抱歉,提前感謝

西部數據

一種解決方案是:

  1. 在 gitolite 伺服器上放置一個接收後掛鉤以自動推送到 Web 伺服器
  2. 在 web 伺服器上放置一個 post-receive 掛鉤來部署程式碼(我通常為此使用 git archive)

然後你推送到 gitolite,它推送到 web 伺服器,然後部署你的新程式碼。完畢!

或者,您可以將 Web 伺服器上的 git repo 排除在外,並讓 gitolite post-receive 掛鉤執行以下操作:

git archive --format=tar master | (ssh -i $KEYFILE user@webserver tar -x -C /dest/dir )

這將直接從 gitolite 掛鉤進行部署。這假設您可以作為在 $KEYFILE 中擁有私有 ssh 密鑰的“使用者”通過 ssh 進入網路伺服器,這可能會產生一些安全後果,因為任何可以讀取 gitolite 鉤子的人都可以獲取這些值。

引用自:https://serverfault.com/questions/358750