從develop分支checkout待開發的功能分支,每一個功能分支,須要關聯到JIRA面板的一個任務即JIRA號,如上圖所示,面板中BKWALLET-434,則對應分支爲feat-434。git
注意:測試
將開發完畢的分支,拉取develop最新代碼,merge並解決衝突後,以後在對應的feature分支建立並提交到develop分支,並自動觸發merge request請求,由code review group進行代碼審查。fetch
注意:優化
當線上版本出現問題,須要從master分支checkout出hotfix分支,代碼修復完畢,而且QA驗證經過後,將該分支merge request到master和develop分支。ui
其中master分支的merge request須要admin來審批,admin能夠是tech leader或devops,由項目組的實際狀況來決定。spa
目前公司sprint迭代週期爲兩週,每一個迭代週期內會有屢次版本發佈,內部版本號以M(milestone)序列開頭,好比M五、M六、M7等;每一個內部版本週期內也會存在屢次小版本的迭代的狀況。3d
每一次merge到master分支產生的變動,都須要進行tag,相比只用commit號來講,更容易追蹤歷史版本,有利於後期維護。針對不一樣項目特性、建議命名以下:code
Backend(Java/PHP)/Frontend(Web)生命週期
tag命名方式建議方式爲<內部版本號/子版本號>,子版本號能夠爲發佈日期或臨時版本號等形式,可由各組自行調整,好比M5/v1.1.0、M5/v1.2.0、M5/20181219等。開發
對於Hotfix的狀況,tag標籤命名方式,能夠根據待修復的版本號+1,好比從tag爲M5/v1.2.0,則修復後的tag爲M5/v1.2.1。
Android/iOS
業務APP/對接業務SDK(好比錢包收銀臺SDK)的tag命名與發佈版本號保持一致,好比v2.9.0;
業務組件的tag命名方式爲內部版本號,可根據實際狀況調整。
注意:移動端的版本發佈會存在cross多個內部版本狀況,所以,不須要指定內部版本號做爲前綴形式。
臨時分支,命名規則建議與tag方式一致,也能夠根據實際狀況自行調整。
該分支完成發佈後,將該分支刪除。
臨時分支,命名規則建議與JIRA號一致,也能夠根據實際狀況自行調整。
該分支merge到develop分支後或提測以前,將該分支刪除。
臨時分支,應用範圍對於線上出現bug,須要緊急修復的狀況,命名規則建議參考tag分支,不強制要求,能夠根據狀況自行調整。
該分支merge到master分支後,將該分支刪除。
git checkout develop
git checkout -b feat-BKWALLET-233
git push origin feat-BKWALLET-233
git pull origin develop
git push origin develop
git checkout develop // 切換
git merge feat-BKWALLET-233 // 合併
注意:確保當前分支爲要合併分支,好比develop分支
git push origin :feat-BKWALLET-233
git branch -D feat-BKWALLET-233
git branch -a
git fetch --all
當前commit號打tag標籤:
補打tag標籤(指定commit號爲 9fbc3d0):
git tag -a M5/v1.2.0 9fbc3d0
注意:
建立tag標籤,根據命名方式能夠對應到版本號及發佈功能,所以,註釋上不作強制,根據實際狀況是否追加註釋。
git push origin M5/v1.2.0
git fetch --all // sync first
git checkout tags/M5/v1.2.0 -b hotfix-1.2.0