使用Git Flow管理開發流程

2021-07-11 15:08:08 字數 1909 閱讀 6274

我們都知道, 在 git 的分支功能相對 svn 確實方便許多,而且也非常推薦使用分支來做開發. 我的做法是每個專案都有2個分支, master 和 develop. master 分支是主分支, 保證程式有乙個 穩定版本, develop 則是開發用的分支, 幾乎所有的功能開發, bug 修復都在這個分支上, 完成後 再合併回 master.

但是情況並不是這麼簡單. 有時當我們正在開發乙個功能, 但程式突然出現 bug 需要及時去修復的時候, 這時要切回 master 分支, 並基於它建立乙個 hotfix 分支. 有時我們在開發乙個功能時, 需要停下來去開發另乙個功能. 而且所有這些問題都出現 的時候, 發布也會成為比較棘手問題.

也就是說, git branch 功能很強大,但是沒有一套模型告訴我們應該怎樣在開發的時候善用 這些分支。於是有人就整理出了一套比較好的方案 a successful git branching model, 今天我們就一起來學習下這套方案.

簡單來說, 他將 branch 分成2個主要分支和3個臨時的輔助分支:

主要分支

輔助分支

作者還提供了 git-flow 命令工具:

$ git flow init
接著它會問你一系列的問題,蛋定!盡量使用它的預設值就好了:

no branches exist yet. base branches must be created now.

branch name for production releases: [master]

branch name for "next release" development: [develop]

how to name your supporting branch prefixes?

feature branches? [feature/]

release branches? [release/]

hotfix branches? [hotfix/]

support branches? [support/]

version tag prefix?

完成後當前所在分支就變成 develop. 任何開發都必須從 develop 開始:

git flow feature start some_awesome_feature
完成功能開發之後:

git flow feature finish some_awesome_feature
該命令將會把feature/some_awesome_feature合併到develope分支,然後刪除功能(feature)分支。

將乙個 feature 分支推到遠端伺服器:

git flow feature publish some_awesome_feature

或者git push origin feature/some_awesome_feature

當你的功能點都完成時(需要發布新版本了),就基於develop建立乙個發布(release)分支,然後公升級版本號並在最後發布日期前把bug fix掉吧:

$ git flow release start v0.1.0
當你在完成(finish)乙個發布分支時,它會把你所作的修改合併到master分支,同時合併回develop分支,所以,你不需要擔心你的master分支比develop分支更加超前。

最後一件讓git-flow顯得威武的事情是它處理熱修復(即時的bugfix)的能力,你可以像其他分支一樣地建立和完成乙個熱修復分支,區別是它基於master分支,因此你可以在產品出現問題時快速修復,然後通過」finish」命令把修改合併回master和develop分支。

git flow on github: 

GitFlow 開發流程

gitflow 比前文講的基於功能分支的開發流程要複雜的多,它更適合做大型的複雜專案 它圍繞專案發布流程定義了乙個嚴格的分支模型,所有的開發分支都是圍繞這個嚴格的分支模型進行。而這個模型約定了每個分支的角色,以及他們如何溝通。我們來看看gitflow開發流程中幾個約定的分支,以及他們各自承擔的角色是...

Git Flow分支管理

也就是我們經常使用的master分支,這個分支最近發布到生產環境的 最近發布的release,這個分支只能從其他分支合併,不能在這個分支直接修改。當我們在production發現新的bug時候,我們需要建立乙個hotfix,完成hotfix後,我們合併回master和develop分支,所以hotf...

使用git flow管理專案實踐總結

1 初始化 進入需要使用git flow專案檔案下執行 git flow init,會出現幾個關於命名的問題 通常使用預設的直接回車就行 2 fearure 新特性,一般在有新功能開發時,使用這個分支,是基於develop上的 切換到develop分支,新建feature分支 執行 git flow...