Gitflow 工作流

angkee發表於2017-10-10

Gitflow 工作流定義了一個圍繞專案釋出的嚴格分支模型。其優點是清晰可控,使多人專案協作開發更加規範;缺點是相對複雜,需要同時維護兩個長期分支。

分支介紹

專案中存在兩個長期分支

  • 主分支(master)
  • 開發分支 (develop)

master 分支一般對應的是生產環境的程式碼,是穩定的釋出版本;develop 分支對應的是開發環境的程式碼,存放的都是最新的開發版。

三種短期分支

  • 功能分支(feature branch)
  • 補丁分支(hotfix branch)
  • 預發分支(release branch)

一旦完成開發,它們就會被合併進 develop 或 master,然後被刪除。

安裝

mac

brew install git-flow-avh

linux

apt-get install git-flow

widows

wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash

常用命令

  1. 初始化

git flow init

  1. 開發新特性,feature 分支

建立一個基於 develop分支的 MYFEATURE feature 分支,並切換到該分支下

git flow feature start MYFEATURE

完成開發新特性,合併 MYFEATURE 分支到 develop,刪除這個新特性分支,並切換回 develop 分支

git flow feature finish MYFEATURE

釋出新特性分支到遠端伺服器

git flow feature publish MYFEATURE

更新其它使用者釋出的新特性分支

git flow feature pull origin MYFEATURE

  1. 準備預釋出版本, release 分支

建立 RELEASE 分支,可選引數 BASE 是 develop 分支提交記錄的 sha-1 hash 值,用來啟動 release 分支

git flow release start RELEASE [BASE]

釋出分支到遠端伺服器

git flow release publish RELEASE

完成開發 release 分支,合併到 master 分支、develop 分支,新增 Tag 標籤,最後移除 release 分支

git flow release finish RELEASE

  1. 緊急修復, hotfix 分支

git flow hotfix start VERSION [BASENAME]

完成緊急修復分支,程式碼合併到 developmaster 分支。相應地,master 分支打上修正版本的 Tag 標籤。

git flow hotfix finish VERSION

git flow 命令

參考文獻

謙虛、自律、胸有成竹、不露城府