代碼分支管理規(guī)范
為了規(guī)范代碼庫(kù)分支管理和版本管理锌仅,使代碼分支及版本結(jié)構(gòu)清晰脐湾,方便維護(hù)崇决,并避免由于維護(hù)造成的錯(cuò)誤的版本發(fā)布等問(wèn)題$择桑現(xiàn)采用如下分支管理辦法:
分支類(lèi)型
分支包括master分支、develop分支渤昌、feature分支虽抄、release分支和hotfix分支。
分支詳細(xì)說(shuō)明
master分支:在每一版本需求全部開(kāi)發(fā)完成独柑,并且測(cè)試通過(guò)發(fā)布App Store后迈窟。將release分支代碼合并更新至master分支,并打上對(duì)應(yīng)的版本號(hào)標(biāo)簽忌栅。
develop分支:保存當(dāng)前最新開(kāi)發(fā)成果的分支车酣。當(dāng)現(xiàn)版本所有需求中某一個(gè)小需求在其他子分支(feature分支)開(kāi)發(fā)完成后,從子分支更新至develop分支狂秘。即develop分支不能存在未開(kāi)發(fā)完成的需求的代碼骇径。
feature分支:當(dāng)一個(gè)新版本需求啟動(dòng)并分配完成,準(zhǔn)備開(kāi)發(fā)后者春,從develop分支檢出,命名為feature-XXX清女,如開(kāi)發(fā)首頁(yè)改版需求可命名為feature-homePageRevision钱烟,在此分支開(kāi)發(fā)新需求,開(kāi)發(fā)完成后如需合并只能合并回develop分支嫡丙,不能合并到其他分支拴袭。feature分支可保存在本地,不強(qiáng)制提交到develop分支里(如某一個(gè)需求臨時(shí)不要了)曙博。
release分支:當(dāng)現(xiàn)版本需求全部開(kāi)發(fā)完成拥刻,feature分支的新需求代碼已全部合并到develop分支,需要提交測(cè)試時(shí)父泳,從develop分支檢出release分支般哼,命名為release-當(dāng)前版本號(hào),在此release分支上打包給測(cè)試人員并修復(fù)反饋的bug惠窄,修改bug后可能會(huì)需要不間斷將代碼合并更新至develop分支蒸眠。當(dāng)代碼測(cè)試通過(guò)后,從release分支打包提交App Store杆融。審核通過(guò)并發(fā)布后楞卡,將release分支代碼合并至master分支和develop分支。
hotfix分支:當(dāng)線上版本出現(xiàn)bug需要修復(fù)時(shí),從master分支檢出蒋腮,命名為hotfix-XXX淘捡,如修復(fù)某某崩潰,可命名為hotfix-xxCrash池摧。修復(fù)完成通過(guò)測(cè)試后焦除,合并至develop分支,提交App Store發(fā)布后险绘,合并至master分支并打上對(duì)應(yīng)版本號(hào)標(biāo)簽踢京。