功能開發 (開發人員)
bug修復,包括測試版本的bugfix和生產版本的hotfix (開發人員)
版本集成,包括發布測試版本和生產版本 (項目經理)
版本測試 (測試人員)
保證bug修復與功能開發并行,不會出現堵塞情形。
保證可以快速版本集成。
實現方式就是多分支 + 里程碑標記
開發人員日常開發時使用的分支,它代表著最新的開發狀態。大多數的時候,最新節點的版本是未經檢驗的、不可靠的。
為了使develop的開發狀態可控,根據代碼提交頻度,定期做一次集成+基本用例測試。如果可以引入單元測試,就更好了。
特性開發分支作為對開發分支的補充,保證不會因為特性開發的不完整,導致develop開發分支的不穩定。
對大型功能的開發,或者試驗性的開發,可以單獨在本地檢出feature分支進行開發。只要定期自己將develop分支的內容同步過來即可。
代表著穩定狀態的分支。任何時候,master分支的最新節點應該都是隨時可發布的。
當完成一個里程碑時(完成版本發布、完成hotfix),應該在主干分支上打上tag,同時將變更內容同步到開發分支。
實際一般主要用于發布測試版本,并提供開發人員在此分支上完成測試版本的bug修復。(如果是發布生產版本,一般直接取用某個測試版本即可)
ü 測試版本應該從開發版本的當前最新節點檢出。為了盡可能保證該節點的穩定性,項目經理應該提前通知開發人員做好代碼提交。
ü 修復bug時,可采用敏捷方式。通過每日集成+回歸測試(只測試最新標記為修復的bug),完成快速迭代。
ü bug修復完成后,由項目經理將分支合入主干,并打上tag,同時將主干內容同步到開發分支develop。 bug修復完成后,release分支也不再有存在價值,可以由項目經理刪除。
修復時,從主干分支上找到對應該生產版本的tag。基于此tag檢出hotfix分支,完成修復后合入到主干master,同時打上tag,刪除hotfix分支。(同時也別忘了將主干分支往開發分支做一次正向同步)
后記:如果是基于Git的版本控制,只有develop分支是必需長期存在的,其他分支事實上都是可以臨時性質的。也就是表面上的單分支,也是我以前公司使用的策略(不過也不完全一致,因為完全的多分支管理也確實比較復雜)。
參考文檔:主要是基于第一份參考文檔。
1. 《一個成功的Git分支策略模型》
2. 《有策略的進行分支》
3. 《敏捷開發模式中的分支管理模式》
4. 《敏捷開發模式中的分支管理模式實戰與補遺》
轉載自http://blog.csdn.net/crylearner/article/details/18779137點擊打開鏈接
新聞熱點
疑難解答