版本管理工具裡面的分支管理一直是困擾開發團隊的一個大問題,這裡我總結了我們團隊使用的分支管理以及開發測試發布環境管理機制。
分支命名和管理
- 現有的主線(master),對應的集成測試環境
- 新建prod分支,用於對應線上正式環境(生產環境)
- 上述兩個分支的代碼和集成,正式環境保持完全一致,如果有版本撤回的操作,代碼也要做對應的操作
- 上述兩個分支的合併和發布許可權僅限個別的項目負責人
新開迭代的分支操作流程
- 產品經理召開迭代啟動會,確定本次迭代包含的功能和bug範圍
- 相關的開發負責人按照迭代編號或者功能名稱從prod創建迭代分支
- 相關的開發從迭代分支開自己的分支做開發
- 開發完成後,從自己的分支發布功能測試版本(本地或者內網環境)
- 功能測試完畢,需要發布集成測試時,先從自己的分支合併到迭代分支,再由項目負責人合併主線,發布集成環境
- 集成環境測試通過,項目負責人把主線合併到prod分支,再發布正式
舉例:
- 產品經理打算開展新的迭代,迭代編號為SL2.0.036
- 開發主管從涉及到的項目的prod分支分別創建名為「sl2.0.036」的迭代開發分支。
- 開發人員A從行程的迭代分支「sl2.0.036」再創建自己的開發分支「sl2.0.036_a」,在這個分支上做開發,開發完成後把自己的開發分支「sl2.0.036_a」合併到迭代分支「sl2.0.036」,基於迭代分支發布功能測試站點。
- 如果還有別的人也參與這個迭代的開發,並且也要改動行程的代碼,比如說B也要參與這個開發。那麼B也從行程的迭代分支「sl2.0.036」創建自己的開發分支「sl2.0.036_b」。
- 如果A和B的代碼有必要合併之後統一發布一個功能測試站點,那麼A和B分別把自己的分支合併到迭代分支「sl2.0.036」,然後再基於迭代分支發功能測試站點。
- 功能測試完成後,由開發主管統一負責把這個迭代涉及到的各個項目的迭代分支合併到主線(master)分支。並基於master分支發布集成測試。
- 集成測試完畢之後,由開發主管負責把涉及到的各個項目的master分支和prod分支合併,然後發布生產環境。