Git指南-Git-flow開發流程

Git-flow簡介

簡單來講,git-flow 就是在 git branch git tag基礎上封裝出來的代碼分支管理模型,把實際開發模擬成 master develop feature release hotfix support 幾種場景,其中 master 對應發佈上線,develop 對應開發,其餘幾個在不一樣的狀況下出現。經過封裝,git-flow 屏蔽了 git branch 等相對來講比較複雜生硬的命令(git branch 仍是比較複雜的,尤爲是在多分支狀況下),簡單並且規範的解決了代碼分支管理問題。html

咱們都知道, 在 git 的分支功能相對 svn 確實方便許多,並且也很是推薦使用分支來作開發. 個人作法是每一個項目都有2個分支, master 和 develop. master 分支是主分支, 保證程序有一個 穩定版本, develop 則是開發用的分支, 幾乎全部的功能開發, bug 修復都在這個分支上, 完成後 再合併回 master.git

可是狀況並非這麼簡單. 有時當咱們正在開發一個功能, 但程序忽然出現 bug 須要及時去修復的時候, 這時要切回 master 分支, 並基於它建立一個 hotfix 分支. 有時咱們在開發一個功能時, 須要停下來去開發另外一個功能. 並且全部這些問題都出現 的時候, 發佈也會成爲比較棘手問題.github

也就是說, git branch 功能很強大,可是沒有一套模型告訴咱們應該怎樣在開發的時候善用 這些分支。因而有人就整理出了一套比較好的方案 A successful Git branching model, 今天咱們就一塊兒來學習下這套方案.服務器

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

主要分支

  • master: 永遠處在即將發佈(production-ready)狀態工具

  • develop: 最新的開發狀態post

輔助分支

  • feature: 開發新功能的分支, 基於 develop, 完成後 merge 回 develop學習

  • release: 準備要發佈版本的分支, 用來修復 bug. 基於 develop, 完成後 merge 回 develop 和 mastercode

  • hotfix: 修復 master 上的問題, 等不及 release 版本就必須立刻上線. 基於 master, 完成後 merge 回 master 和 develophtm

做者還提供了 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 裏面更加生動的解釋了怎樣去操做!

相關文章
相關標籤/搜索