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 還是比較復雜的,尤其是在多分支情況下),簡單而且規范的解決了代碼分支管理問題。
我們都知道, 在 git 的分支功能相對 svn 確實方便許多,而且也非常推薦使用分支來做開發. 我的做法是每個項目都有2個分支, master 和 develop. master 分支是主分支, 保證程序有一個 穩定版本, develop 則是開發用的分支, 幾乎所有的功能開發, bug 修復都在這個分支上, 完成后 再合并回 master.
但是情況并不是這么簡單. 有時當我們正在開發一個功能, 但程序突然出現 bug 需要及時去修復的時候, 這時要切回 master 分支, 并基于它創建一個 hotfix 分支. 有時我們在開發一個功能時, 需要停下來去開發另一個功能. 而且所有這些問題都出現 的時候, 發布也會成為比較棘手問題.
也就是說, git branch 功能很強大,但是沒有一套模型告訴我們應該怎樣在開發的時候善用 這些分支。于是有人就整理出了一套比較好的方案 A successful Git branching model, 今天我們就一起來學習下這套方案.
簡單來說, 他將 branch 分成2個主要分支和3個臨時的輔助分支:
主要分支
master: 永遠處在即將發布(production-ready)狀態
develop: 最新的開發狀態
輔助分支
feature: 開發新功能的分支, 基于 develop, 完成后 merge 回 develop
release: 準備要發布版本的分支, 用來修復 bug. 基于 develop, 完成后 merge 回 develop 和 master
hotfix: 修復 master 上的問題, 等不及 release 版本就必須馬上上線. 基于 master, 完成后 merge 回 master 和 develop
作者還提供了 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 里面更加生動的解釋了怎樣去操作!
總結
以上是生活随笔為你收集整理的Git指南-Git-flow开发流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gxg是什么牌子(GXG再获ESPRIT
- 下一篇: 炒莲藕的家常做法?