Git 學習——git work flow

一、目的

爲了減少在團隊協作開發時因分支管理不當而出現的代碼丟失、錯亂情況,需要一套標準規範來約定分支的相關操作;主要針對分支命名規範、分支操作流程進行說明

二、分支命名約定

  1. master分支:公共分支,可以隨時編譯對外發布的穩定版本,不允許直接push 代碼,只接受feature/hotfix分支通過MR 操作合併代碼;當一個版本的所有功能再develop 測試通過後,在本地pull 拉取最新master 代碼,切換到開發feature分支,把master 分支merge 到 feature 分支(這一步一定要做,保證遠程MR一定會成功),把衝突在本地解決,之後把該分支push 到遠程,在遠程 通過MR 合併遠程master 分支,然後再更新本地master分支,並再本地打版本tag,再推送tag到遠程;

  2. develop 分支:公共分支,該分支主要用於合併代碼並打包測試,而非功能開發,但不能合併到master; 禁止在該分支開發commit 代碼,只能通過feature分支在本地 merge 合併代碼,把衝突在本地解決,然後push到遠程;把feature分支合併develop 分支時,要先從服務端pull 一遍拉取最新代碼(有可能別人push了新的代碼),然後再進行本地merge 操作;

  3. feature分支:獨立分支(命名以feature/function_desc),feature 分支主要用來開發功能,而非打包測試。開發完成之後,切到develop分支之後,按照develop 中的描述進行分支合併打包;Feature分支開發完成可以選擇刪除或者保留,feature分支的創建最好以功能特徵來命名,每一個功能對應一個feature分支,這樣做的好處就是代碼提交日誌清晰集中、功能並行開發切換自由;

  4. hotfix分支: 獨立分支(命名以hotfix/開始),一般用於修復已發佈版本的bug,直接從master上拉取。bug修復完成後,然後以feature 分支合併到master爲樣本,再操作一次 hotfix 分支即可。

總結:1. merge 操作之前,一定要pull 拉取當前分支的最新代碼;2. 解決代碼合併的衝突,一定是在本地進行的;3. 公共分支 不能進行commit操作,只能本地merge 或者遠程 merger (MR)來合併代碼 4. 每個分支都有一個 Life cycle ,下面我來一一解釋一下

 

 

三、流程圖

 

 

 

這裏爲了簡單起見,沒有創建release 分支,採用相對簡單的模式。

流程描述:

新功能開發

  1. 當我們需要開發新功能時,我們從最新的master 分支創建feature/function_desc 分支;
  2. 新功能開發完成時,把feature/function_desc 分支代碼合併到develop分支(注意:是develop merge feature,方向不能返了),然後進行提測;
  3. 測試通過後,把feature/function_desc 分支通過MR 合併到master分支,並再master分支標記tag;
  4. 再次開發新功能時,再重複步驟1即可

bug修復

  1. 對已經發布的master版本,突然線上發現問題了,需要再master tag1.0的基礎上拉取分支 hotfix/bugfix_login , 進行bug修復;
  2. bug修復完成,分支hotfix/bugfix_login 通過MR合併到master 分支;

 

循環新功能開發和bug修復兩個環節,就構成了我們日常開發基本流程,遵循上述步驟就可以避免因操作不當造成的各種問題,提升開發效率和滿足業務需求。

 

另外,如果想要掌握更全面的git 使用,要掌握git 的其他高級技能 變基 reBase 、stash 這些,可以查看git 教程官網

 

 

發佈了92 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章