【git】前端使用git分支的開發流程

鬧鬧崽崽發表於2019-02-17

一、先講背景

目前的就職的公司,雖不是BAT之類,但是直接領導和後端業務團隊的領導基本來自阿里和華為,git分支主要有以下:
主分支:master,保證所有已釋出到生產環境的分支都已merge到master,並且,新分支比如從master建立
日常分支:daily,本地開發和測試環境使用,保證所有的已上生產和釋出測試的分支都已merge到daily
其他分支:版本分支或bug分支,從master拉取,並在merge到master後刪除
前端團隊採用如下開發流程:
(接到版本需求後,假設不需要後端介面配合,或後端介面已開發完畢)

二、開發階段

第一階段(本地開發+測試環境階段)
step1:master建立一個新分支featrue-2019-2,此為版本分支,並拉取到本地,使用SwicthHosts將本地開發環境對映到日常環境,也稱測試環境,在本地開發除錯
step2:本地開發後,使用sourcetree儲存並提交到遠端featrue-2019-2分支,你使用git命令也是一樣
step3:拉取日常環境分支daily,並將featrue-2019-2 merge到 daily
step4:使用JenKins(日常環境賬號)登入後構建daily分支,表示對daily的程式碼執行npm run build+push,構建成功後通知測試人員
step5:若測試有問題,修改後,重複step2、step3、step4,直到測試通過
第二階段(預發階段)
step1:merge master 到 featrue-2019-2,保證featrue-2019-2已包含所有的生產程式碼
step2:使用JenKins(預發環境賬號)登入後構建featrue-2019-2分支,構建成功後通知測試
step3:若測試有問題,檢查測試環境是否也有此問題,若有,則要返回第一階段的step2
第三階段(生產階段)
step1:此分支發預發後,若有別的分支發了生產,則需要執行merge master 到 featrue-2019-2,保證featrue-2019-2已包含所有的生產程式碼
step2:使用JenKins(生產環境賬號)登入後構建featrue-2019-2分支,構建成功後通知測試
step3:featrue-2019-2 merge 到 master,並刪除featrue-2019-2,
step4:若測試有問題,彙總問題,從master拉取bug分支,例如可命名為featrue-2019-2-bug,從第一階段開始,開啟一個新的版本開發

三、分支原則

1、保證master分支是唯一主分支
2、所有版本分支,所有需求,所有程式碼,必須按“照構建日常——>構建預發——>構建生產”的順序執行
3、所有版本分支只開發此版本相關內容,不可混合其他版本需求開發
4、分支釋出生產後,必須儘快merge到master
5、分支的生命週期,從master上拉取開始,到merge到master以後結束,一個分支儘量只使用一次,即merge到master以後就刪除
6、不要頻繁釋出生產,日常和預發不受限制

四、預發環境的必要性

以前的公司,只有測試/預發環境和正式/生產環境,來到這家公司後,才瞭解到預發環境的必要性。
測試環境,用來測試程式碼沒有問題,但是測試環境裡都是測試資料,和真實資料差別很大,大家都知道,對於前端來說這些資料的不同會造成特殊情況存在,例如測試環境的資料不合法。
而預發環境則是真實資料,基本上使用者在預發環境的所見,99%等同於在生產環境的所見,所以,必要性可想而知。

相關文章