2009-11-15 32 views
3

我在想,如果我使用git標記和修補標記(然後用於部署rails應用程序)使用git的策略是適當的。使用git標記和修補的適當策略

對於標記我只是標記主幹的提交。

如果發生這種情況,我必須修補標籤,檢出標籤(例如1.0),解決問題,提交併重新標記它(例如1.0.1)。 現在,如果我必須對標籤進行另一次修復,我會重複此過程,首先使用第一個修補程序的標籤(例如1.0.1)。

現在,我注意到兩件事情: 1.當我檢查1.0.1時,我收到警告說我不在分支 - 我認爲沒關係,但它適合作爲策略嗎? 2.當我嘗試部署1.0.2時,在遠程存儲庫的代碼更新期間,我從capistrano(用於部署rails應用程序的工具)收到錯誤,說它無法找到該對象[提交1.0。 2]。我可以糾正這個問題,檢查主和合並1.0.2。

當然,我總是將標籤推送到存儲庫。

有什麼不對嗎/效率低下/不適當,或者這是一個適當的策略? 我對git完全陌生,無法找到大量有關通常使用的部署策略的信息。

回答

3

從標籤1.0,你需要做一個分支

$ git checkout -b hotfix1.0 

上,你可以去每一個你需要修復的時間,並且可以在其上做標記(1.0.1,1.0 .2,...)每次需要部署時。

在一個分離的頭的工作是不是最佳的,因爲承諾以後可以修剪。如果你是一個分離的頭,並做了一些修改,你總是可以合併他們在既定分支:

$ git checkout -m hotfix1.0 

我不建議做一個分支爲每個需要爲1.0版本的修復您的程序:一個分支應該足夠用於這個目的,並在標籤上標記出值得發佈的重大修改。

3

我建議做這種方式:

1.0標籤,例如建立一個新分支version-1並在其中應用此修補程序。

將分支標記爲1.0.1

在接下來的修補程序可以使用同一個分支或者,如果你刪除它,創建一個新的,但是從標籤1.0.1這個時候。