git分支管理規(guī)范

# 分支管理

Edit

## 分支分類及作用

Edit

一共5類分支,分別為master,dev,feature, release,hotfix。

master分支:穩(wěn)定版分支,線上運(yùn)行的版本。

dev分支:開發(fā)分支,開發(fā)的主力分支。

feature分支:開發(fā)的子分支,用以開發(fā)產(chǎn)品的某個功能。

release分支:用以測試、修復(fù)線下bug及發(fā)布的分支。【不允許任何分支向release合并】

hotfix分支:用以修復(fù)線上bug的分支, 由于線上的代碼只能有release分支發(fā)布,所以目前hotfix分支與release分支合為一支,存在且只存在release分支。

## 分支的管理策略

Edit

## 版本的命名策略

Edit

版本采用三段式,主版本號.功能版本號.修訂版本號,例如:3.2.1。主版本號為3。功能版本號:2。修訂版本號:1

上級版本號變動,所有下級版本號清0。例如版本號1.1.11。主版本改為2。則現(xiàn)版本號改為2.0.0

###產(chǎn)品改變完全不兼容前一個版本(主版本號加1)

主版本號加1,例如:原版本號為1.1.0 則現(xiàn)版本號為2.0.0。

###大功能變動(功能版本號加1)

每次遇到feature大的版本功能開發(fā)完畢,在測試完畢,release分支合并入master/dev分支前,在release分支上記一個功能版本tag標(biāo)簽,例如:2.1.0。依次遞增1

###小功能變動與bug修復(fù)。(修訂版本號加1)

每次遇到feature小的功能新增或者優(yōu)化,在測試完畢,release分支合并入master/dev分支前,在release分支上記錄一個小的三位版本tag標(biāo)簽,例如:2.1.1。依次遞增1

每次遇到hotfix修改bug完畢,在release分支合并入master分支前,則記一個修復(fù)bug版本tag標(biāo)簽,例如:2.1.2。依次遞增1

###

在操作分支時記得看下tag版本號,重要!重要!重要!

## 項目中的分支操作策略

Edit

### 在第一次開發(fā)時的分支操作(第一個開發(fā)feature功能的人)

不能在dev上分支上直接開發(fā),要在拉取的feature中開發(fā)。在dev上開發(fā)的任何功能都會被管理策略回滾掉。

克隆遠(yuǎn)端倉庫。

拉取/切換到dev分支 保證與origin dev分支一致。

從本地dev分支拉取feature分支(命名方式:featrue_產(chǎn)品名_功能_(產(chǎn)品下一個功能版本號)_拉取日期)。

將本地feature分支push到遠(yuǎn)端origin。

通知其他隊友采用此分支。

### 在開發(fā)階段中的分支操作(后續(xù)開發(fā)feature功能的人)

不能在dev上分支上直接開發(fā),要在拉取的feature中開發(fā)。在dev上開發(fā)的任何功能都會被管理策略回滾掉。

克隆遠(yuǎn)端倉庫。

拉取/切換到feature分支,保證與origin feature分支一致。

在feature分支開發(fā)相應(yīng)功能,完成后push到origin。

### 在開發(fā)完成時的分支操作

此時不允許其他分支合并到dev分支

確保所有成員都已提交完畢,保證本地feature與origin feature分支一致,本地試運(yùn)行。

本地切換分支到dev,拉取最新的dev分支。

將origin的feature分支合并到本地的dev分支。

push dev到遠(yuǎn)端origin上。

執(zhí)行命令 git remote update , 拉取origin各個分支。

執(zhí)行命里 git remote prune origin,清除本地沒有和遠(yuǎn)端服務(wù)器對應(yīng)的分支。

如果存在origin release ,沒有其他產(chǎn)品線在使用origin release分支的情況下,合并origin release 到 dev,然后再刪除origin release。

如果有人在使用orgin release請協(xié)商進(jìn)行,最好上線有節(jié)奏,不要一起上線。(注意操作,發(fā)現(xiàn)線上存在hotfix分支,則此release是為hotfix使用,不能刪除,一切讓位于hotfix,暫時不發(fā)布release測試)。

從origin dev[新建,新建,新建。重要的事情多說幾遍,是新建release]本地分支release若不存在origin release,才可以刪除本地release)。

將本地release push到 origin release。

在Jenkins上發(fā)布到測試環(huán)境,通知測試隊友開始測試。

此時不允許其他分支合并到dev分支

### 在測試階段遇到bug時的分支操作

此時不允許其他分支合并到dev分支

本地拉取/切換到release分支,保持與origin release一致。

在release分支上修改線上遇到的bug。自測后push到origin

本地切換到dev, 更新dev,合并origin release到本地dev分支。

push 本地dev到origin dev。

### 在測試完畢后的分支操作

本地拉取/切換到release分支,保持與origin release一致。

在release分支上修改線上遇到的bug。自測后push到origin。

本地切換到dev, 更新dev,合并origin release到本地dev分支。

push 本地dev到origin dev。

本地拉取/切換到master分支,保持與origin master一致。

合并origin release到本地master分支上。

在本地master分支上打上tag(命名方式:產(chǎn)品名_本次版本號(feature上的版本號))。

push本地master到origin master上 包括tag標(biāo)簽【注意:一定要記得選擇將自己打好的tag勾選push到遠(yuǎn)端】。

刪除origin release。刪除feature分支(本地和origin)。

### 在遇到線上bug時的分支操作

#### 如果origin已存在release分支

本地拉取/切換到dev分支,保持與origin dev一致。

合并origin release到本地dev分支上, push本地dev到origin dev

刪除origin release。

下面的步驟參考【#### 如果origin不存在release分支】

#### 如果origin不存在release分支

本地拉取/切換到master分支,保持與origin master一致。

從orgin master拉取本地hotfix分支(命名方式:hotfix_master版本號_修復(fù)bug_日期)

本地hotfix推送origin hotfix。

在本地hotfix上修復(fù)bug。

從hotfix上[新建,新建,新建。重要的事情多說幾遍,是新建release]本地分支release

將本地release push到 origin release。

在Jenkins上發(fā)布到測試環(huán)境,通知測試隊友開始測試。

重復(fù)4,5,6,7步驟直到線上bug修復(fù)完畢。

本地切換到dev, 更新dev,合并origin release到本地dev分支。

push 本地dev到origin dev。

本地拉取/切換到master分支,保持與origin master一致。

合并origin release到本地master分支上。

在本地master分支上打上tag(命名方式:產(chǎn)品名_本次版本號(小版本號))。

push本地master到origin master上 包括tag標(biāo)簽【注意:一定要記得選擇將自己打好的tag勾選push到遠(yuǎn)端】。

刪除origin release。

?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 GIT,在技術(shù)層面上,絕對是一個無中心的分布式版本控制系統(tǒng),但在管理層面上,我建議你保持一個中心版本庫。 2 ...
    聶順閱讀 881評論 0 1
  • Git分支管理 master:主分支,當(dāng)前分支上的代碼隨時可以直接發(fā)布,并且只能通過Pull Request從其他...
    UEUEO閱讀 9,965評論 5 33
  • 本系列教程來自廖雪峰的官方網(wǎng)站,現(xiàn)在搬運(yùn)過來,目的幫助自己和小白學(xué)習(xí)收藏!附贈:常用git命令清單 目錄 前言 創(chuàng)...
    Blizzard_liu閱讀 1,218評論 0 4
  • 在程序里怎么保存用戶的數(shù)據(jù)?數(shù)據(jù)存在客戶端:cookie可以用購物車的功能類比。cookie是客戶端技術(shù),程序把每...
    黑泥卡閱讀 1,079評論 1 1
  • 習(xí)慣晚上9點(diǎn)后就要去看看社群的消息,雖然不喜歡冒泡,但社群大概的動靜還是知道,害怕自己錯過了什么樣,很喜歡聽鄭老師...
    慧李閱讀 269評論 0 0

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