GIT協(xié)作流程
主要分支
中央倉庫中有兩個長期的分支:
master
develop
master
用作生產(chǎn)分支,里面的代碼是穩(wěn)定的發(fā)布版本代碼。代碼庫應(yīng)該有且僅有一個主分支。所有提供給用戶使用的正式版本,都在這個主分支上發(fā)布。
develop
是可交付的開發(fā)代碼,也可以看成是用于集成分支,每晚構(gòu)建從develop
獲取代碼。
當(dāng)develop
分支中的代碼足夠穩(wěn)定的時候,就將改動合并到master
分支,同時打上一個標(biāo)簽,標(biāo)簽的名稱為發(fā)布的版本號,并保留打包DSYM文件和ipa文件進(jìn)行歸檔。
輔助分支
通過輔助分支來幫助并行開發(fā),和主要分支不同,這些分支的生命周期是有限的:
特性分支
預(yù)發(fā)布分支
緊急修復(fù)分支
特性分支(feature)
特性分支可能從develop
分支分出,最終必須合并回develop
。
特性分支(也叫主題分支)用于開發(fā)新特性。每個新特性開一個新分支,最終會合并回develop
(當(dāng)特性開發(fā)完畢的時候),或者放棄(如果最終決定不開發(fā)這個特性)。
特性分支只存在于開發(fā)者的倉庫中。
預(yù)發(fā)布分支(release-)
預(yù)發(fā)布分支可能從develop
分出,最終必須合并回develop
和master
。
預(yù)發(fā)布分支以小寫字母a~z
開頭的有含義的英文方式命名,例如:apple、banana
或者預(yù)發(fā)布分支以release-*
的方式命名。
預(yù)發(fā)布分支為新的發(fā)布版本作準(zhǔn)備,包括一些小bug的修正和發(fā)布的元信息(版本號、發(fā)布日期等)的添加。這樣develop
分支就可以接受針對以后的發(fā)布的新特性。
在代碼基本可以發(fā)布的時候從develop
分支分出預(yù)發(fā)布分支。這時要確保此次發(fā)布包括的特性都已經(jīng)合并到develop
分支了(同時,為下一版發(fā)布準(zhǔn)備的特性不能合并到develop
分支,必須等待預(yù)發(fā)布分支分出后才能合并)。
緊急修復(fù)分支(fixbug)
當(dāng)發(fā)布分支中的代碼可以發(fā)布的時候,將代碼合并到master分支,并打上相應(yīng)的標(biāo)簽。同時還需要合并到dev分支,因為發(fā)布分支里可能包含一些修正bug的代碼,合并回去可以確保以后的版本也包含這些修正。