關(guān)于GIT工作流的一點(diǎn)思考

軟件開發(fā)的同學(xué)離不開代碼管理,git提供了工作流支持,github提供了倉庫&管理(當(dāng)然還有其它一些免費(fèi)或者收費(fèi)的代碼倉庫)。

實(shí)際工作過程中,管理人員一般會(huì)根據(jù)項(xiàng)目實(shí)際需求來自定義一套適合協(xié)同開發(fā)的標(biāo)準(zhǔn)流程,以減少或者避免代碼沖突和事故,把風(fēng)險(xiǎn)降到最低。與此同時(shí),還要清晰地確定開發(fā)、測(cè)試與發(fā)布流程,敏捷開發(fā)、快速迭代,保證整個(gè)項(xiàng)目成功上線。

倉庫代碼的分支介紹

????代碼倉庫:master主干分支

????開發(fā):dev分支、feature分支(臨時(shí)性)

????測(cè)試:test分支、hotfix分支(臨時(shí)性)

????發(fā)布:release分支、特別定義的發(fā)版分支(臨時(shí)性)

倉庫代碼的架構(gòu)設(shè)計(jì)

????一般中大型項(xiàng)目(3人以上),一層代碼管理架構(gòu),建議設(shè)定四個(gè)分支:release-master-test-dev;二層代碼管理架構(gòu),建議基于一層基礎(chǔ)上增加臨時(shí)性分支(可選擇):feature-hotfix-spec分支,如我現(xiàn)在正在進(jìn)行的項(xiàng)目就采用了如下架構(gòu):

git flow(>3)

????若是基于1~3人開發(fā)維護(hù)的小項(xiàng)目,則可以簡化工作流(如下),沒有必要搞得那么繁瑣,這樣減少維護(hù)成本,提供工作效率。

? ? 1)首先,砍掉二層架構(gòu)的臨時(shí)性分支

????2)其次,把開發(fā)分支與測(cè)試分支合并,完全可在本地編譯、自測(cè)、聯(lián)調(diào)通過后,再上傳到dev分支

????3)最后,再協(xié)同開發(fā)時(shí),主要提交代碼時(shí)開發(fā)人員間及時(shí)代碼同步+沖突解決

git flow(1~3)

? ? 若是1人開發(fā)并維護(hù)的個(gè)人項(xiàng)目,則可以超簡化工作流(如下),進(jìn)一步把master與release分支合并,最終僅保留master+dev分支

git flow(1)

代碼倉庫的CI&CD

代碼最終要經(jīng)過內(nèi)部測(cè)試與上線公測(cè)來檢驗(yàn)其好壞強(qiáng)弱,并通過不斷進(jìn)行地迭代、集成、發(fā)布才最終形成優(yōu)秀的產(chǎn)品,這就需要進(jìn)行持續(xù)的版本管理。

一般采用jenkins工具來做CI&CD,監(jiān)控持續(xù)重復(fù)的工作并進(jìn)行追蹤管理。CI的觸發(fā)原則上遵循以下條件:

1)發(fā)布分支(release/master):強(qiáng)制在線觸發(fā)CI,并附帶tag+version迭代

2) 其它分支(dev、test...):根據(jù)實(shí)際需要,可選擇性手動(dòng)觸發(fā)CI,并附帶comment

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容