Git Flow使用規範

曹化金發表於2024-07-05

Git Flow使用規範

Sourcetree使用

Clone遠端專案或者Add本地git專案

descript

初始化Git Flow

切換相應的專案tab,點選右上角的Git工作流按鈕,彈框點選確定初始化gitflow。也可透過git命令列(git flow init )初始化,提示選擇一個分支作為功能分支基礎版本(一般dev/develop分支)。descript

descript

使用Git Flow

點選Git工作流,新增功能分支feature,釋出分支release, 修復分支hotfix 。

descript

新建功能分支

descript

關閉功能分支

開發完成後,點選完成功能按鈕,並按具體情況選擇是否保留分支,建議保留一段時間後再清除。釋出版本操作和修復版本操作類似。

descript

descript

分支命令規範

  1. 功能開發分支名:feature_xxx功能英文名稱_需求id編號
  2. 開發分支:dev(develop)
  3. 待發布分支:release
  4. 生產分支:master
  5. hotfix修復分支:fix_功能名稱_V功能版本號+1

注意: 除歷史待上線分支外,git倉庫只會存在以下分支:

master

dev

feature/feature_xxx

release/release_xxx

hotfix/hotfix_xxx

分支操作規範

開發階段:建立功能分支,開發完成finish並保留feature_xxx分支。

測試階段:在feature_xxx修改,繼續finish並保留feature_xxx分支。

驗收階段:只能在release_xxx分支修改bug。

需求回滾:刪除dev分支,重新拉取master到dev分支,重新選擇保留的功能分支finish和重新建立release發版分支。

上線完成:需求上線成功,master程式碼手動合併到dev分支,相關的feature_xxx和release_xxx分支需要及時手動刪除。

Git Flow常用命令

  1. git flow init:初始化Git Flow工作流程。這個命令將為您的專案配置Git Flow,並建立所需的分支(如master、develop等)。
  2. git flow feature start <feature-name>:建立一個新的功能分支並切換到該分支上開始開發新功能。
  3. git flow feature finish <feature-name>:完成一個功能分支的開發並將其合併回develop分支。在合併完成後,該功能分支將被刪除。
  4. git flow release start <release-version>:建立一個新的釋出分支,準備進行版本釋出。通常在該分支上進行版本相關的bug修復和準備工作。
  5. git flow release finish <release-version>:完成一個釋出分支,合併回master分支,同時也會將修改合併回develop分支。在合併完成後,會為該版本打上標籤,並刪除釋出分支。
  6. git flow hotfix start <version>:建立一個新的熱修復分支,用於緊急修復生產環境中的bug。
  7. git flow hotfix finish <version>:完成一個熱修復分支,將修復的內容合併回master分支和develop分支,併為修復版本打上標籤。

Q&A

  1. 建立發版分支報錯,因為遠端已經存在release分支,用gitflow建立發版分支release/release_xxx會出現分支衝突。

descript

解決方案:刪除遠端和本地release分支或者修改release名稱。首次jekins發版也會報錯,找@劉國晉 幫忙清除下原有分支快取。

  1. 本地建立多個hotfix分支報錯。

descript

解決方案:本地已經存在hotfix分支,刪掉所有的本地的hotfix分支,重新建立就可以了。

  1. 多次關閉hotfix分支報錯。

descript

解決方案:因為之前finish已經預設打過與hotfix分支同名的Tag,按需要可以:1.手動填寫標籤名稱更換標籤名稱。2.刪掉已經打過同名的Tag. 3.去掉勾選,不打此次Tag。

descript

相關文章