git flow 工作流程。如下圖所示。
master 分支
master 分支主要方穩定、隨時可上線的版本。這個分支只能從別的分支上合並過來,一般來講,從develop 上合併,或者從hotfix分支上合並過來。不能直接在master 分支上進行commit文件。因爲是穩定的版本,所以每次版本發佈都要在這個分支上添加標籤
(tag)。
develop 分支
develop 分支是所有開發分支的母體,所有的開發分支都要從develop上切出來,開發完成之後最後都要合併到develop上。 即feature分支都是由develop分支切出來的。 一次只在一個分支中開發。
hotfix 分支
hotfix 分支用來修復生產中的緊急bug,由於develop分支尚處於開發過程中,代碼不穩定,不能直接應用於生產。所以從master分支上切出一個分支,修復完成之後合併到master分支,並且合併到develop上。
release 分支 (finish 此版本會在本地創建tag)
release 分支可以稱之爲預發佈的版本。當我們認爲develop版本的代碼已經趨於成熟,我們可以打一個release分支。在release 分支上測試完成之後,要將代碼合併到master分支和develop上。master 分支是線上版本,而合併到develop版本是因爲,在測試過程中,一些細節的東西可能會修改,因此這些優化的內容也應該合併到最終版本以及開發版本中。
feature 分支
feature 分支是最經常使用的分支了。當我們收到一個新的開發功能時,應該在develop分支上切出一個feature分支。用來完成新功能的開發,開發完成之後,要合併進develop分支上。
git flow的開發流程。
feature分支開發完了---測試通過---合併到develop—合併到master---git tag release-x.x.x--- (Jenkins) 構建出包。---給QA測試---有bug就從master拉一個hotfix分支---改完bug合併到develop---合併到master---git tag---打包迴歸測試---合格上線。
上述操作是本地執行的。 包括git flow 創建的分支。 需要push到git庫。 git push origin feature/newBranch
合併完develop/master分支也是需要 git push origin develop 將改動推到遠程。
ubuntu apt-get install git-flow
git flow init 初始化 next
git flow feature start test 本地創建分支 feature/test 並切換、base分支是develop 需要 git push origin feature/test 將分支push到遠程。
git flow feature finish test 本地test分支合併到develop分支。並刪除遠程&本地的 feature/test分支。 使用後需要將develop 分支push到遠程。 git push origin develop
git flow release start 1.0.0 本地創建分支 release/1.0.0並切換、base分支是develop 需要git push origin release/1.0.0 將分支push到遠程。
git flow release finish 1.0.0 本地release/1.0.0分支合併到develop && master 需要將本地develop && master 分支push到遠程。 並且會在本地創建一個tag 需要 git push --tags 將tag 提交到遠程。tag名稱爲 1.0.0
git flow hotfix start pro_bugfix 本地創建分支hotfix/pro_bugfix 並切換、base分支是master 需要 git push origin hotfix/pro_bugfix 將分支push到遠程。
git flow hotfix finish pro_bugfix 本地hotfix/pro_bugfix 分支合併到develop && master 需要將本地develop && master 分支push到遠程。 並且會在本地創建一個tag 需要 git push --tags 將tag 提交到遠程。tag名稱爲pro_bugfix