自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

多人協(xié)作如何管理Git分支

系統(tǒng)
據(jù)了解,我們團隊以前采用的是版本分支管理策略,也就是每次上線新版本都會創(chuàng)建一個新的版本分支,而新的需求開發(fā)也從當前最新的版本分支遷出一個新的需求分支開發(fā),線上bug則在版本分支上修改然后發(fā)布。

 [[390059]]

關(guān)于Git分支管理,每個團隊在不同階段都有自己的管理策略,最近我們團隊也爭論過這個問題。

據(jù)了解,我們團隊以前采用的是版本分支管理策略,也就是每次上線新版本都會創(chuàng)建一個新的版本分支,而新的需求開發(fā)也從當前最新的版本分支遷出一個新的需求分支開發(fā),線上bug則在版本分支上修改然后發(fā)布。

在我接手項目的時候發(fā)現(xiàn)一個問題,由于拆分的微服務(wù)項目以及組件不在同一個project里面,我拉取全部項目代碼后全部切換到master分支居然構(gòu)建失敗,提示xx類沒有xxx方法,然后我全部切換到test分支情況依舊。后面同事找出的原因是新版本的代碼沒有合并到master分支。顯然,版本分支成了項目的主分支,而master分支相當于一個棄用的分支。

由于項目目前全部容器化部署,并且走自動化部署,因此版本分支已經(jīng)不適用了,目前采用的策略是線上master分支,測試test分支,當開發(fā)完成需求后將需求分支合并到test分支交給測試的同事去測試,測試完成后由開發(fā)合并到master分支部署。

這種策略同樣存在問題,首先,開發(fā)不應(yīng)該有權(quán)限修改master分支,其次,多個需求一同合并到master分支出現(xiàn)沖突會影響發(fā)布。

在發(fā)布新版本之前,我們應(yīng)該確保已經(jīng)解決所有代碼沖突問題,因此應(yīng)該多出一個分支,只有該分支的代碼可以直接合并到master分支,所有需要在下個版本發(fā)布的需求分支通過測試后都應(yīng)該先合并到該分支,在上線前再由項目負責人發(fā)起合并到master的請求,由部門主管處理合并請求,或者由項目負責人直接處理合并。

我并不看好自動觸發(fā)構(gòu)建發(fā)布生產(chǎn)環(huán)境這種策略(代碼一合并到master分支就自動發(fā)布),因為往往在發(fā)版之前都需要做一些準備,等所有準備就緒后再按順序去發(fā)版,例如數(shù)據(jù)庫表結(jié)構(gòu)的修改、配置文件的修改(開發(fā)人員不應(yīng)該拿到生產(chǎn)環(huán)境的配置)。

此外,自動觸發(fā)構(gòu)建發(fā)布生產(chǎn)環(huán)境也不支持藍綠/灰度發(fā)布,當然了,我們項目目前也不需要藍綠/灰度發(fā)布,所以說,每個團隊在不同階段都有適合自己的管理策略。

以下分享筆者前后就職的三個公司當時采用的分支管理策略。

目前我們團隊使用的分支管理策略

  • 生產(chǎn)分支:master
  • 測試分支:test
  • 需求分支:${需求}

開發(fā)人員開發(fā)需求需創(chuàng)建需求分支,需求開發(fā)完成后合并到test分支,測試人員在test分支上測試。

測試人員提交bug后,開發(fā)人員需切回需求分支修復bug,修復完成后合并到test分支,如此往復。

需求測試通過后,由開發(fā)合并到master分支發(fā)布。

線上bug直接在master分支修改,修改完成在master分支發(fā)布。

這種方案直接在master分支修復線上bug繞過了測試,而且每個開發(fā)都有master分支的提交權(quán)限,存在很大的風險,因此這種方案只適合小團隊。

老東家使用的分支管理策略

  • 開發(fā)分支:dev
  • 生產(chǎn)分支:master
  • 測試分支:test
  • 需求分支:${需求}
  • 版本分支:relese-${version}

開發(fā)人員開發(fā)需求需創(chuàng)建需求分支,開發(fā)完成后由測試人員切換到該需求分支測試,或者批量測試的話就將多個需求分支合并到test分支。

測試人員提交bug后,開發(fā)人員需切回需求分支修復bug,修復完成后再通知測試人員切換到該分支測試,或是合并到test分支測試,循環(huán)往復。

需求測試通過后,由開發(fā)人員/開發(fā)組長將需求分支合并到dev分支,在約定的版本上線時間由開發(fā)組長提交將dev分支合并到master分支的請求,由主管合并分支。

最后,每次發(fā)版之后都將dev切出一個relese-${version}分支,線上bug在此分支修改,并且修改完成后測試需切到該分支測試,測試完成后就可以直接合并到master分支發(fā)布。

前前公司使用的分支管理策略

無分支管理策略,沒有測試環(huán)境,需求在需求分支開發(fā),開發(fā)完成后由開發(fā)自己測試,覺得沒問題了就直接合并到dev分支,然后發(fā)布。master分支也是棄用的。有些簡單的需求以及線上bug都是直接在dev分支改動。(沒有測試就直接上線,非常的恐怖)。

本文轉(zhuǎn)載自微信公眾號「Java藝術(shù)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Java藝術(shù)公眾號。

 

責任編輯:武曉燕 來源: Java藝術(shù)
相關(guān)推薦

2014-08-08 10:20:23

Git版本管理系統(tǒng)

2021-09-15 14:53:35

在線文檔多人協(xié)作

2022-11-07 08:01:18

Git分支管理

2024-04-03 09:03:05

項目分支管理

2022-10-26 09:22:19

git命令Linux

2020-07-09 08:00:25

Git分支模式

2023-10-09 08:39:33

Git Flow分支管理模型

2018-06-08 09:27:08

GitLinux開源

2015-12-30 10:29:40

Git協(xié)作流程詳解

2020-09-06 09:55:13

git分支命令

2022-03-04 09:02:01

StoryBoard工具git

2022-05-25 16:51:41

Git 分支重命名開發(fā)者

2011-11-30 16:37:58

sync

2023-12-01 11:05:29

Git 分支

2016-11-10 07:50:55

群暉云端Office

2019-08-15 10:25:02

代碼開發(fā)工具

2021-04-25 08:43:30

管理前端后端

2009-07-14 08:26:46

微軟網(wǎng)絡(luò)版Office網(wǎng)絡(luò)版Office功能Office 2010

2020-05-28 10:45:31

Git分支合并

2022-08-11 15:45:13

Git
點贊
收藏

51CTO技術(shù)棧公眾號