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/git... install stable | bash
常用命令
- 初始化
git flow init
- 開發新特性,
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
- 準備預釋出版本,
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
- 緊急修復,
hotfix
分支
git flow hotfix start VERSION [BASENAME]
完成緊急修復分支,程式碼合併到 develop
和 master
分支。相應地,master 分支打上修正版本的 Tag 標籤。
git flow hotfix finish VERSION
參考文獻
本作品採用《CC 協議》,轉載必須註明作者和本文連結