1

我正在將我的源代碼從TFVC土地遷移到Git,我想現在是時候清理並正確地做 - 現在有很多複製/粘貼繼續。用一個理想的Git分支策略爲一個簡單的白色標籤解決方案奮鬥

我的項目有一個'主要'解決方案 - 如果您願意,我們將其視爲黃金標準。但是,我的項目適用於不同的業務,兩者之間有內容差異,有些包含彼此不同的深奧業務邏輯(我認爲這是一種相對鬆散耦合的方式)。

我不知道維持「主」構建和不同版本的最佳策略。

我是否爲每個版本創建了一個有多個分支的存儲庫,還是將它們分成不同的存儲庫(但顯然我無法合併新代碼,因此這不太理想)。

我跟了過去,「釋放隔離」戰略:

F1 ------ 
     |--MASTER---------------- 
F2 ------   |---v1.4  |---v2.0 
        |    | 
        |--HF1  |--E1 

很抱歉的可怕的視覺,但法師是我的部署將來自,F1/2將是功能,V1.4 /v2.0是我們需要支持的版本,HF1是支持該版本的修補程序,而E1則是增強版本。

任何修補程序都會合並回Master,當Master充滿足夠的新功能並經過測試時,我們將創建一個新版本(v3.0)。

的問題是,我不知道該如何進行模型適應我的白色標籤

F1 ------ 
     |--MASTER(main client)---------------- 
F2 ------      |---client2  |---client3 
           |    | 
           |----v1.0  | 
           | |--E1   |--v1.1 
           |----v2.0   |----HF1 

我不知道這是不是足夠穩定。

如果我有一個遍歷所有構建的功能,我可以從Master的左側開始,並推送到每個版本的新版本,並協調任何合併問題。

如果我有一個bug(即HF1),那麼我將不得不跨越分支的大量合併它(當然,至少支持的版本和開發/主分支機構)

這是理想的還是我完全錯誤的方式?

回答

0

我稱之爲分叉主策略。

      (The Times) 
          ----MASTER--- 
      WSJ-MASTER---| | | |---FT-MASTER 
       |  |  | |  |  | 
       |  |  | |  |  | 
       | WSJ-RELEASE | |  |  FT-RELEASE 
      |---  |  | |  |    | 
      |  WSJ-HF1 | |  FT-FR1  |---FT-HF1 
    WSJ-FR1--|     | |      | 
      |  TIMES-BF1--| |--TIMES-RELEASE  |---FT-HF2 
    WSJ-BF1--|     |    |    
        TIMES-FR1--|    |--TIMES-HF1 

在擁有賣給不同的報紙上軟件產品的這個假設的例子中,時代被認爲是我們的核心平臺,我們生產的微小變化(因此分叉主)。

我們不需要'釋放隔離',因爲我們只支持一個版本的網站。在'主人'的左邊,我們有了所有新的發展(即增強/錯誤修正/對代碼庫進行大量更改的分支)。

在右側,我們有一個'release'分支,它始終與生產中的內容保持一致,所以我們可以輕鬆地將其分支以進行熱修復。

最近幾天使用它(我欣賞這是一個可憐的時間),迄今爲止這麼好!

相關問題