2012-03-28 50 views
1

假設我在git存儲庫中有一個項目。該項目有一個名爲「穩定」或「生產」的分支,當前版本的項目總是穩定的。我有一臺生產服務器,理想情況下應該始終具有最新版本的stable分支。我知道我可以在特定的時間間隔內運行一個cron作業,但我對這個解決方案並不滿意。在發現穩定分支中的錯誤後,我經常可以在一個小時內推送多達5個修補程序。我希望生產服務器在推送完成後立即提交這些新的提交。我可以設置我的服務器在新提交進來時自動從分支中提取更新嗎?

這樣做最簡單的方法是什麼?我的後備解決方案是讓我的生產服務器每分鐘左右運行一次,所以任何短小的事情都會很好。

回答

2

你可以做post-commit hook,它會推送到生產服務器。

此外,每分鐘拉不看是一個不好的解決方案。

+0

+ 1用於提交後的掛鉤。輪詢是不太理想的,但我猜測OP確實指定了「最簡單的」...: -/ – ghoti 2012-03-28 16:54:22

+0

我有點困惑於你答案的第一句話。我的問題與推送無關,只是生產服務器的拉動:S – Hubro 2012-03-28 17:04:41

+0

@Codemonkey你可以在本地回購中有一個鉤子,它會將更改推送到遠程。如果你需要花一點時間,那麼遠程倉庫接收到的變化,你可以使用「後更新」鉤子。請參閱http://book.git-scm.com/5_git_hooks.html它有很好的解釋和所有可能的掛鉤。 – kan 2012-03-28 17:08:56

0

如果您有構建服務器(Bamboo,Hudson,Cruisecontrol等),您還可以設置任務以在源中檢測到更新時觸發另一個分支中的拉取操作。我們在Bamboo中安裝了使用native git的任務。

+1

Afaik,構建服務器通過定期拉動檢測更新,因此它幾乎相同。但是這種方法有更多的功能。 – kan 2012-03-28 17:01:58

+0

AnthillPro至少具有提交後觸發器的掛鉤,而不是輪詢。其他一些工具也可以。在內部,我們使用這種方式,以便當網站提交時,創建一個新的「構建」並自動推送到測試服務器(大約一分鐘)。然後,我們可以根據需求將其推廣到生產中。 – EricMinick 2012-03-29 14:52:58

相關問題