2012-08-04 78 views
8

我們有一個在生產和登臺服務器上運行的大型rails項目。每次部署到舞臺或製作時,創建標籤是一個不錯的主意(這會在capistrano自動發生)。或者最好創建名爲「開發」和「分期」的分支,(主要包含生產狀態)?標籤vs git中的分支

回答

1

您可以使用分支機構進行開發,分期和生產,同時使用標籤來識別生產版本。我喜歡git flow處理這些分支的方式,並使您能夠使用更多分支來開發新功能。作爲一名開發人員,您不必將代碼提交到主分支,並且合併到主分支中也很少。

5

git中的標籤非常長壽命:它們在從遠程存儲庫中獲取時自動傳播,如果要清除它們,則必須在每個副本中手動執行。因此,我寧願使用分支(可能還有他們的reflog)來標記自動部署,否則我很可能會很快被埋在很多標籤中。

1

我們對每個部署進行了標記(自動在我們的部署腳本中),以便在需要時進行快速恢復,但它們也可以用作部署歷史記錄。例如:

deployment_stag_20120804 
deployment_stag_20120823 
deployment_prod_20120715 
deployment_prod_20120724 

如果您想避免大量標籤,您可以讓您的腳本僅爲最後N個部署保留標籤。

如果您的部署方法是將合併到生產分支(git鉤子可能會觸發prod服務器上的拉動),則分支更有意義。