規範是死的,人是活的,希望自己定的規範,不要被打臉。
在說 git 分支規範之前,先說下在系統開發過程中常用的環境。
簡稱全稱dev
development environment
fatfeature acceptance test environment
uatuser acceptance test environment
proproduction environment
接下來,針對不同的環境來設計分支。
分支名稱
環境可訪問
master
主分支pro
是release
預上線分支
uat是
hotfix
緊急修復分支
dev否
develop
測試分支
fat是
feature
需求開發分支
dev否
master 分支
master
為主分支,用於部署到正式環境(pro),一般由release
或hotfix
分支合併,任何情況下不允許直接在 master 分支上修改**。
release 分支
release
為預上線分支,用於部署到預上線環境(uat),始終保持與master
分支一致,一般由develop
或hotfix
分支合併,不建議直接在release
分支上直接修改**。
如果在release
分支測試出問題,需要回歸驗證develop
分支看否存在此問題。
hotfix 分支
hotfix
為緊急修復分支,命名規則為hotfix-
開頭。
當線上出現緊急問題需要馬上修復時,需要基於release
或master
分支建立hotfix
分支,修復完成後,再合併到release
或develop
分支,一旦修復上線,便將其刪除。
develop 分支
develop
為測試分支,用於部署到測試環境(fat),始終保持最新完成以及 bug 修復後的**,可根據需求大小程度確定是由feature
分支合併,還是直接在上面開發。
一定是滿足測試的**才能往上面合併或提交。
feature 分支
feature
為需求開發分支,命名規則為feature-
開頭,一旦該需求上線,便將其刪除。
這麼說可能有點不容易理解,接下來舉幾個開發場景。
新需求加入
有乙個訂單管理的新需求需要開發,首先要建立乙個feature-order
分支,問題來了,該分支是基於哪個分支建立?
如果 存在 未測試完畢的需求,就基於master
建立。
如果 不存在 未測試完畢的需求,就基於develop
建立。
需求在feature-order
分支開發完畢,準備提測時,要先確定develop
不存在未測試完畢的需求,這時研發人員才能將將**合併到develop
(測試環境)供測試人員測試。
測試人員在develop
(測試環境) 測試通過後,研發人員再將**發布到release
(預上線環境)供測試人員測試。
測試人員在release
(預上線環境)測試通過後,研發人員再將**發布到master
(正式環境)供測試人員測試。
測試人員在master
(正式環境) 測試通過後,研發人員需要刪除feature-order
分支。
普通迭代
有乙個訂單管理的迭代需求,如果開發工時 < 1d,直接在develop
開發,如果開發工時 > 1d,那就需要建立分支,在分支上開發。
開發後的提測上線流程 與 新需求加入的流程一致。
修復測試環境 bug
在develop
測試出現了bug,如果修復工時 < 2h,直接在develop
修復,如果修復工時 > 2h,需要在分支上修復。
修復後的提測上線流程 與 新需求加入的流程一致。
修改預上線環境 bug
在release
測試出現了bug,首先要回歸下develop
分支是否同樣存在這個問題。
如果存在,修復流程 與 修復測試環境 bug流程一致。
如果不存在,這種可能性比較少,大部分是資料相容問題,環境配置問題等。
修改正式環境 bug
在master
測試出現了bug,首先要回歸下release
和develop
分支是否同樣存在這個問題。
如果存在,修復流程 與 修復測試環境 bug流程一致。
如果不存在,這種可能性也比較少,大部分是資料相容問題,環境配置問題等。
緊急修復正式環境 bug
需求在測試環節未測試出 bug,上線執行一段時候後出現了 bug,需要緊急修復的。
我個人理解緊急修復的意思是沒時間驗證測試環境了,但還是建議驗證下預上線環境。
並行提測
在乙個專案中並行開發了兩個需求,並行提測,但是上線日期不同。
我能想到的兩種方案:
提交資訊一定要認真填寫!
比如:fix(首頁模組):修復彈窗 js bug。
type
表示 動作型別,可分為:
scope
表示 影響範圍,可分為:模組、類庫、方法等。
subject
表示 簡短描述,最好不要超過 60 個字,如果有相關 bug 的 jira 號,建議在描述中加上。
暫時就想到這麼多,規範這東西不是一成不變的,供參考。
推薦閱讀:
好文章,我在看
git的分支檢視
1.1檢視遠端分支git branch r r remote1.2檢視本地分支git branch1.3所有分支git branch a a all2.1新建分支,不切換至新分支git branch branch name 預設是拷貝操作,複製原分支內容至新分支2.2新建分支,並切換至新分支git ...
git刪除分支 檢視分支動態
git不能在當前分支下刪除你當前所在的分支,比如你要刪除new分支,而現在正在處於new分支下,則執行git branch d new的時候會報錯 error cannot delete branch new checked out at d web webpack project front en...
git 檢視遠端分支
這個資訊實際是存在config 檔案中的,可以用下面的命令來檢視temp分支的資訊,1 git config l grep branch temp 比如下面的列印說明本地 master 分支 track 的是 origin 庫的 master 分支。1 2 3 git config l grep b...