舉例說明
feature
分支在開發團隊中如何更好的工做
爲減小分支間合併代碼時的差別,能夠經過建立一個專門用來合併用的feature分支,好比ft-merge
。其餘成員按照本身劃分的功能模塊,創建對應的feature分支,根據好比ft-login
(註冊登陸相關功能,開發者張三)、ft-pay
(支付相關功能,開發者李4、王五)。約定天天的同步代碼任務:張三負責ft-login
分支的更新,先從ft-merge
pull代碼到ft-login
,解決衝突後merge回ft-merge
。李四負責ft-pay
,先讓王五提交代碼到ft-pay
,而後從ft-merge
pull代碼到ft-pay
,解決衝突後,而後merge回ft-merge
。git
成員 | 職責 | 開發分支 |
---|---|---|
劉備 | 組長,git 分支管理 | feature/ft-v20-merge,feature/hotfix-* |
關羽 | 模塊責任人,登陸註冊 | feature/ft-login |
趙雲 | 模塊責任人,支付模塊(支付寶渠道)開發,當前分支代碼同步 | feature/ft-pay |
張飛 | 支付模塊(微信渠道)開發 | feature/ft-pay |
魏延 | 支付模塊(銀聯渠道)開發 | feature/ft-pay |
黃忠 | 支付模塊(支付網關)開發 | feature/ft-pay |
劉備
初始化feature分支:微信
關羽
、張飛
、趙雲
檢出本身負責的分支;關羽
天天上班時 pull ft-v20-merge
分支,下班時 merge 到 ft-v20-merge
;張飛
、魏延
、黃忠
天天上班時 pull ft-pay
分支,下班時 push (這裏是 push) 到 ft-pay
;趙雲
天天上班時 pull ft-v20-merge
分支,下班時 merge 到 ft-v20-merge
;劉備
天天上班時 檢查 ft-v20-merge
分支分合並記錄,同時review代碼;劉備
接到線上v1.0 的bug報告,須要修復一個樣式問題, 經過SourceTree git-flow 工做流工具「新建修復補丁」,自動從master
檢出修復分支 hotfix/hf-style
,進行代碼修改,測試經過後完成 「修復補丁」生命週期,hf-style
分支被合併回develop
分支,並將develop
分支合併到ft-v20-merge
;關羽
和趙雲
次日上班時,同步代碼,將劉備
提交的bug修復內容合併到本身的 feature 分支。v2.0
版本提測前, 劉備
確認各開發者代碼所有提交,在ft-v20-merge
構建提測版本。全部成員跟蹤及修復測試bug,完成測試階段。劉備
經過 SourceTree git-flow 選項「完成功能」,將自動合併ft-v20-merge
到develop
。劉備
經過 SourceTree git-flow 選項「新建版本」,將自動從develop
檢出release/r-v2.0
(名稱本身定義),對版本號等信息等做一些微調後,經過 SourceTree git-flow 選項「完成版本」,自動合併當前分支至master
。流程回放工具
劉備
做爲開發組長,能夠天天檢查代碼提交狀況。關羽
、趙雲
做爲功能模塊負責人,對合並給到劉備
的ft-v20-merge
代碼負責。張飛
、魏延
、黃忠
做爲開發者,不用去關注本身分支和develop
分支差別,只需關注天天pull時可能發生的衝突。劉備
做爲開發組長,負責線上BUG的修復,合併 hotfix 到 master ,發佈修復版本,並將修復代碼‘同步’給開發成員。
feature-xxx
分支直接merge回develop
分支改成只由feature-v20-merge
merge 回develop
分支,develop
合併的質量能夠更好地控制。曹操
負責的開發隊伍加入,只需增長ft-v20-merge-cc
(cc表示組長或負責人),操做執行劉備
相同的平常操做,等到發佈版本前決定劉備
主導合併。