2013-01-07 98 views
5

在我們公司,我們正在從SvN轉移到Git(是的,比從未更好的遲到)。因此,我們也嘗試簡化版本控制流程。爲此,我找到了一篇有趣的文章:文森特Driessen成功的Git分支模型。支持多個版本,成功的Git分支模型

據我可以從文章中讀取,開發人員假定線性版本。要清楚:

v1.0.0 --> v1.0.1 --> v1.0.2 --> v1.1.0 --> v1.1.1 etc 

未提及對舊版本的支持。例如:我們最多支持三個主要版本,因爲有些客戶不想升級。所以,想象我們有如下的版本:

v7.0.0 --> v8.0.0 --> v9.0.0 --> v10.0.0 

當在v8.0.0發現v9.0.0發佈後一個關鍵的錯誤,我們取出一個標籤v8.0.0,修正錯誤,然後把它合併到developmaster分支機構。合併到master獲取標籤v8.0.1

在我看來,在某種程度上奇怪的,因爲兩件事情:

  1. master時間表的樣子v7.0.0 --> v8.0.0 --> v9.0.0 --> v8.0.1 --> v10.0.0。我完全意識到這是可能的,但它也可以接受嗎?
  2. 當我從hotfix合併master(和master是在那一刻在v9.0.0),並與v8.0.1標記它,我也得到v8.0.0v9.0.0之間引入的新特性?

在此先感謝!

回答

4

對我來說,標記v8.0.1應該是合併之前的提交master。如果你想修補新版本,那麼你也可以在那裏合併其他標籤。

v8.0.0 --> v9.0.0 --> v10.0.0 
    \   \   \ 
    v8.0.1 --> v9.0.1 --> v10.0.1/master 
+0

謝謝!我可能誤解了Git中標記的概念:)沒有意識到我可以標記修復程序本身,而不是合併到develop/master中,然後標記。謝謝! – Ivan