執(zhí)行流程:
執(zhí)行過程如下圖:
執(zhí)行過程:
- 基于online創(chuàng)建feature分支(AMKT-1111)盐类;
- 基于feature分支拉自已的開發(fā)分支(AMKT-1111-zsl)试伙;
- 開發(fā)完成后固以,將自已的分支(AMKT-1111-zsl)合并到feature分支(AMKT-1111)
- 聯(lián)調(diào)時,feature分支merge到develop分支;
測試時,feature分支merge到qa分支筒愚;
預(yù)發(fā)環(huán)境驗證時,feature分支merge到preview分支菩浙;(非必須:多feature進(jìn)行preview驗證時使用)
上線時巢掺,feature分支merge到online分支句伶。
命令規(guī)范
master:暫不使用。
online:主分支陆淀,與線上保持一致考余。永久保留。
preivew:預(yù)發(fā)分支轧苫,多feature進(jìn)行preview驗證時使用楚堤,用完即刪。
develop:開發(fā)分支含懊,相對穩(wěn)定分支钾军,永久保留。develop分支online最終一致绢要。重大上線后可刪除從online重新生成。
qa : 測試分支拗小,相對穩(wěn)定分支重罪,永久保留。develop分支online最終一致哀九。重大上線后可刪除從online重新生成剿配。
feature:功能分支,story號阅束。用完即刪呼胚。
feature子分支:功能子分支,story號-人名全拼或者姓名首字母。用完即刪息裸。
hotfix-功能描述-人名全拼或者姓名首字母:線上bug修復(fù)分支蝇更。標(biāo)注該分支處理的問題+開發(fā)人員。用完即刪呼盆。
分支名稱統(tǒng)一都是小寫字母年扩。
back-功能描述-人名:用于特殊保留分支,最后一個commit中要描述分支功能访圃,描述過多厨幻,寫在README.md中
名稱示例:
AMTK-1111
AMTK-1111-zhangshaolin
hotfix-package-zsl
back-kafak-retry
back-getCustomerId-zsl(需要特別保留的)
沖突解決
如果feature分支合并到develop分支時出現(xiàn)沖突,不能在gitlab上merge腿时,在gitlab上會污染feature分支况脆。
解決沖突過程:
- 基于develop分支拉合并分支(AMKT-1111-develop);
- 將feature分支(AMKT-1111)合并到合并分支(AMKT-1111-develop)批糟;
- 將合并分支(AMKT-1111-develop)合并到develop分支格了;
- 上線時,feature分支merge到online分支徽鼎。
問題:
1笆搓、一個沖突解決多次性湿,merge到develop/qa/online都要解決沖突
2、如果測試后不上線满败,develop分支肤频、qa、online分支容易被污染
對于問題一:有兩種情況:
一種是feature分支與online不會有沖突算墨,只是多feature并行開發(fā)導(dǎo)致宵荒,這種無解;對于這種情況净嘀,開發(fā)前盡量避免這種沖突過多的多feature分支报咳,如果是新功能feature,看是否可以同時上線,功能不對外提供服務(wù)挖藏。
另一種是feature分支與online有沖突暑刃,可能是某一feature已上線,這種可以把online分支merge到feature分支膜眠。
對于問題二:重大上線后岩臣,刪除develop、qa分支宵膨,從online重新拉取
注意:
- 解決沖突不能在gitlab上
- 不要用reset
- git commit msg 盡量 短小有意義
- 合并代碼@maobing
- 代碼先提develop分支架谎,再提qa(只在develop分支deploy到私服)