Gitflow 工做流定義了一個圍繞項目發佈的嚴格分支模型。其優勢是清晰可控,使多人項目協做開發更加規範;缺點是相對複雜,須要同時維護兩個長期分支。html
項目中存在兩個長期分支linux
master
分支通常對應的是生產環境的代碼,是穩定的發佈版本;develop
分支對應的是開發環境的代碼,存放的都是最新的開發版。git
三種短時間分支github
一旦完成開發,它們就會被合併進 develop 或 master,而後被刪除。bash
mac服務器
brew install git-flow-avhspa
linuxcode
apt-get install git-flowhtm
widowsblog
wget -q -O - --no-check-certificate https://raw.github.com/peterv... 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