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

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

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

倉庫代碼的分支介紹

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

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

????測試:test分支、hotfix分支(臨時性)

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

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

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

git flow(>3)

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

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

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

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

git flow(1~3)

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

git flow(1)

代碼倉庫的CI&CD

代碼最終要經(jīng)過內(nèi)部測試與上線公測來檢驗其好壞強(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í)際需要,可選擇性手動觸發(fā)CI,并附帶comment

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

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