1. 程式人生 > >多分支開發策略

多分支開發策略

分支策略

                                                                                                                                    author:crylearner

 

日常開發中幾個常見過程

ü  功能開發 (開發人員)

ü  bug修復,包括測試版本的bugfix和生產版本的hotfix (開發人員)

ü  版本整合,包括髮布測試版本和生產版本 (專案經理)

ü  版本測試 (測試人員)

 

分支策略的核心任務

ü  保證bug修復與功能開發並行,不會出現堵塞情形。

ü  保證可以快速版本整合。

實現方式就是多分支 + 里程碑標記

 

多分支策略

1.       develop開發分支

開發人員日常開發時使用的分支,它代表著最新的開發狀態。大多數的時候,最新節點的版本是未經檢驗的、不可靠的。

為了使develop的開發狀態可控,根據程式碼提交頻度,定期做一次整合+基本用例測試。如果可以引入單元測試,就更好了。

2.       feature特性開發分支

特性開發分支作為對開發分支的補充,保證不會因為特性開發的不完整,導致develop開發分支的不穩定。

對大型功能的開發,或者試驗性的開發,可以單獨在本地檢出feature分支進行開發。只要定期自己將develop分支的內容同步過來即可。

3.       master 主幹分支

代表著穩定狀態的分支。任何時候,master分支的最新節點應該都是隨時可釋出的。

當完成一個里程碑時(完成版本釋出、完成hotfix),應該在主幹分支上打上tag,同時將變更內容同步到開發分支。

4.       release 版本釋出分支

實際一般主要用於釋出測試版本,並提供開發人員在此分支上完成測試版本的bug修復。(如果是釋出生產版本,一般直接取用某個測試版本即可)

ü  測試版本應該從開發版本的當前最新節點檢出。為了儘可能保證該節點的穩定性,專案經理應該提前通知開發人員做好程式碼提交。

ü  修復bug時,可採用敏捷方式。通過每日整合+迴歸測試(只測試最新標記為修復的bug),完成快速迭代。

ü  bug修復完成後,由專案經理將分支合入主幹,並打上tag,同時將主幹內容同步到開發分支develop。 bug修復完成後,release分支也不再有存在價值,可以由專案經理刪除。

5.       hotfix  生產版本bug修復分支

修復時,從主幹分支上找到對應該生產版本的tag。基於此tag檢出hotfix分支,完成修復後合入到主幹master,同時打上tag,刪除hotfix分支。(同時也別忘了將主幹分支往開發分支做一次正向同步)

 

 

後記:如果是基於git的版本控制,只有develop分支是必需長期存在的,其他分支事實上都是可以臨時性質的。也就是表面上的單分支,也是我以前公司使用的策略(不過也不完全一致,因為完全的多分支管理也確實比較複雜)。

 

 

參考文件:主要是基於第一份參考文件。

1. 《一個成功的Git分支策略模型》

2. 《有策略的進行分支》

3. 《敏捷開發模式中的分支管理模式》

4. 《敏捷開發模式中的分支管理模式實戰與補遺》