最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

GitOps代碼分支管理體系

2023-02-16 14:43 作者:zerix  | 我要投稿

##背景

常見的Git開發(fā)流程中,建立好分支管理和發(fā)布規(guī)則,以及良好的日常開發(fā)分支管理,能夠較大提高開發(fā)人員效率,降低溝通維護成本,便于各個項目的codeReview,提供整個產(chǎn)品質(zhì)量。



##分支管理配置

首先,有幾條規(guī)則需要確定。


1. dev/master分支不允許直接push,向這兩個分支合并代碼需要提交MR或者PR。

所有release分支以 release#VERSION-日期 來命名,比如release#4.0-20221212 表示2022年12月12日發(fā)布的4.0分支。relase開頭的分支同樣不允許直接PUSH,必須提MR來合并代碼。


2. 客戶定制需求相關分支以? project#客戶名稱#VERSION-日期 來命名,比如 project#xinjiangkashi#4.0-20221212,表示新疆喀什的客戶分支,project開頭的分支不允許直接PUSH,必須提MR來合并代碼。


3. 新功能開發(fā)分支為 feature#原始分支名#新增功能說明,比如 feature#dev#added-spark-locality-support ,表示新功能開發(fā),從dev分支checkout出來,新功能是增加 spark locality功能。


4. bug修復分支以 bugfix#原始分支名#修復BUG說明,比如 bugfix#release#4.0-20221212#fix-null-point-bug。


5. hotfix分支,一般僅僅作為 release或者project 分支發(fā)布后,出現(xiàn)了問題,需要緊急修復,可以創(chuàng)建該分支,創(chuàng)建規(guī)則一致。


6. feature/bugfix/hotfix提交到了一個分支后,如果該功能需要提交到其他分支,可以在頁面上操作 cherry-pick 到其他即可。


7. dev/master/release*/project*開頭的分支在git/gitlab服務端配置成保護分支,其他人就不能直接push。


##GIT workFlow示例:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jvbaynj65qfdub514k8d.png)



##日常開發(fā)流程


>本文以dev為主要開發(fā)分支來介紹,dev分支內(nèi)包含測試過可以上線的最新代碼,根據(jù)不同情況,也可以使用master分支來做為開發(fā)主分支,遵循策略一致。


###新功能開發(fā)流程


1.從dev分支checkout出來feature分支,checkout命令:

```shell

git checkout -b feature#dev#added-locality-support

```

>說明:feature表示新功能開發(fā),第一個#和第二個#之間內(nèi)容為checkout原始分支名稱,如果是從master分支切換出來,則為feature#master#,最后一部分內(nèi)容為feature具體新增功能。


2.編寫代碼,完成測試,測試完成后提交代碼到本地,命令:

```shell

git commit -am "added locality function."

```


3.提交代碼到遠程。

```shell

git push origin feature#dev#added-locality-support

```


4.進行CI構建,測試,測試通過后,提交MR/PR merge到dev分支,相關人員review后最終merge到dev分支。


>此處可以配置倉庫權限,只有倉庫的maintainer可以merge,其他開發(fā)人員提交MR后,maintainer需要進行codeReivew,通過后才可以merge到分支,提MR的分支必須要保證可以編譯通過,可以正常運行。


**在此條件下,dev分支任何時候去構建,都是正??梢跃幾g通過,并且可以發(fā)布正常運行的。**


5.確認該分支是否需要 cherry-pick 到其他分支,如果需要,則操作 cherry-pick 流程到其他分支。


###bug修復流程


BUG修復流程和上述開發(fā)流程一致,僅僅是分支名稱不一樣而已,但是bug的修復要注意提交到release分支后,也需要cherry-pick到dev分支。


##Release分支管理


1. 每周從dev分支checkout出來release分支,如果發(fā)布到預發(fā)布環(huán)境,可以在分支名稱末尾增加 -rc 字樣來表示,預發(fā)布環(huán)境測試通過后,從rc分支再checkout出正式分支,發(fā)布。(此處相當于release包含兩個分支,-rc為預發(fā)布環(huán)境分支,不帶-rc為生產(chǎn)環(huán)境分支,上生產(chǎn)后,兩個分支內(nèi)容應該一致。)


2. 對project分支,如果不想維護太多project分支,對每個客戶可以只使用一個project分支,在每次發(fā)布后,增加tag來標識此次發(fā)布行為,tag僅僅做標識,不和CI結合。


3. 對于 一個分支是否需要向多個分支進行cherry-pick,需要根據(jù)業(yè)務場景來確定,比如有些定制化內(nèi)容,不需要進入dev分支,則不需要cherry-pick到dev,比如一個bugfix需要更新多個project分支和release,則需要逐個cherry-pick。


4. CI可以根據(jù)不同的分支來進行相應的構建,推薦使用gitlab CI直接可以通過不同分支的配置來進行觸發(fā)構建。

GitOps代碼分支管理體系的評論 (共 條)

分享到微博請遵守國家法律
凤台县| 乌鲁木齐市| 山阴县| 府谷县| 平和县| 九龙城区| 抚顺市| 昌邑市| 新丰县| 吉木萨尔县| 黎城县| 清流县| 当阳市| 宁乡县| 广昌县| 万荣县| 东丰县| 库伦旗| 咸阳市| 陕西省| 遂昌县| 扎兰屯市| 沈阳市| 泸定县| 岳阳市| 精河县| 江口县| 克什克腾旗| 安徽省| 肃宁县| 安庆市| 乌拉特前旗| 河西区| 新化县| 定襄县| 临海市| 大姚县| 廊坊市| 电白县| SHOW| 平湖市|