git-flow使用指南

git-flow使用指南

1.簡介

  • git-flow是基于Git Flow工作流模型的工具,了解Git Flow 模型。它可以使開發(fā)者更方便的進行版本的控制,使用該工具,便不需要將Git-Flow模型的命令和順序都記在腦子里。
  • 一旦安裝了git-flow,你將會擁有一些擴展命令,這些命令將會在一個預定義的順序下執(zhí)行多個操作,這就是我們的工作流程。它僅僅是非常聰明有效地把標準的 Git 命令用腳本組合了起來。

2.安裝

2.1 在 Mac 安裝

brew install git-flow

2.2 在 Linux 安裝

sudo apt-get install git-flow

2.3 在 Windows 安裝

  1. util-linux package,libintl,libiconv。進入這三個鏈接,把每個鏈接中的二進制文件下載,分別解壓出getopt.exe、libint13.dll、libiconv2.dll三個文件,并復制到Git的bin目錄下
  2. 將GitHub上面的git-flow資源克隆到本地(可在Git目錄下執(zhí)行,使生成的gitflow文件在Git目錄中)
$ git clone --recursive git://github.com/nvie/gitflow.git
  1. 執(zhí)行cmd命令
//Git的安裝路徑隨著自己的不同去更改。
C:\Program Files (x86)\Git\gitflow>contrib\msysgit-install.cmd "C:\Program Files (x86)\Git"

3.初始化

$ git flow init
  • 使用該命令初始化時,會詢問關(guān)于幾個分支的命名,強烈建議使用默認的名字。
  • 初始化之后,git-flow會自動幫你創(chuàng)建master分支和develop分支,并且切換到develop分支。
  • 初始化時候,項目是否已經(jīng)包含一個Git倉庫并不重要,這個init操作可以在已有的git倉庫使用。
  • 常用情況,當倉庫已經(jīng)關(guān)聯(lián)遠程倉庫,此時我們只需要執(zhí)行g(shù)it-flow初始化命令,就相當于執(zhí)行了本地創(chuàng)建develop分支,拉取遠程develop分支的最新內(nèi)容,關(guān)聯(lián)遠程的develop分支。(一般遠程倉庫都有一個develop分支)

4.功能開發(fā)

新功能的開發(fā)是基于develop分支的

4.1 開始新功能

//分支名默認是為feature/分支名,該名字應(yīng)能涵蓋整個新功能
$ git flow feature start 分支名
  • 執(zhí)行之后,會基于develop分支創(chuàng)建一個功能分支,并自動切換到該分支。

4.2 發(fā)布新功能

如果團隊協(xié)作開發(fā)一個新功能,此時就有必要將本地的新功能分支推送到遠程倉庫

$ git flow feature publish 分支名
  • 執(zhí)行之后,在遠程創(chuàng)建該分支,以及進行關(guān)聯(lián),并切換到該分支。

4.3 取得遠程的新功能分支

團隊合作開發(fā)同一個新功能的時候,拉取遠程的新功能分支到本地

$ git flow feature pull origin 分支名
  • 執(zhí)行之后,會在本地創(chuàng)建一個分支,并拉取遠程最新的提交,自動切換到該分支。

4.4 關(guān)聯(lián)遠程分支

用于本地功能分支關(guān)聯(lián)遠程分支,一般很少用到,前面的命令都會自動關(guān)聯(lián)了。

$ git flow feature track 分支名

4.5 完成新功能

//在功能分支執(zhí)行Git的原生命令,add和commit之后,執(zhí)行
$ git flow feature finish 分支名
// 執(zhí)行之后便可以執(zhí)行原生的push,將本地的develop分支推送到遠程
  • 執(zhí)行該命令,會將該分支合并到develop分支,并切換回develop分支,刪除該功能分支。
  • 如果是團隊協(xié)作開發(fā)同一個功能的話,便執(zhí)行commit命令即可,等協(xié)作共同完成之后,確定該分支不再需要了,就可以將最新的功能分支合并到develop分支,刪除該分支。

5.發(fā)布

當develop分支的代碼已經(jīng)是一個成熟的release版本,即它已經(jīng)包括了所有的新功能和必要的修復。

5.1 創(chuàng)建release

$ git flow release start 版本號
  • 執(zhí)行之后,會在本地develop分支上創(chuàng)建一個release/版本號 分支,并切換到該分支。

5.2 發(fā)布release

$ git flow release publish 版本號
  • 在遠程倉庫創(chuàng)建該分支,并進行關(guān)聯(lián),其他開發(fā)者可以拉取該分支并在該分支提交內(nèi)容。

5.3 取得遠程的release分支

$ git flow release track 版本號
  • 執(zhí)行之后,在本地創(chuàng)建該分支,并拉取最新的提交,關(guān)聯(lián)遠程。

5.4 完成release

$ git flow release finish 版本號

執(zhí)行該操作會執(zhí)行下面一系列操作

  • git-flow會拉取遠程的最新提交。
  • release會被合并到master和develop分支。
  • release的提交會被打上標記。
  • 刪除release分支,并且切換回develop分支。

6.緊急修復

6.1 創(chuàng)建hotfix

$ git flow hotfix start 錯誤名
  • 該操作會在master分支創(chuàng)建一個hotfix分支,并切換到該分支。
  • (如果有必要發(fā)布到遠程)關(guān)于推送遠程的一些處理和之前的release和feature分支處理一樣,在此不再贅述。

6.2 完成修復

$ git flow hotfix finish 錯誤名

該操作和finish掉release分支進行的一系列操作相似。

7.回顧

  • git-flow并不會為Git擴展任何新的功能,它僅僅使用了腳本來捆綁了一系列 Git 命令來完成一些特定的工作流程。
  • 依舊可以使用Git的一些原生命令,而且push遠程的操作git-flow并沒有幫我們執(zhí)行。
  • 使用 git-flow 并不是必須的。當積攢了一定的使用經(jīng)驗后,很多團隊會不再需要它了。當你能正確地理解工作流程的基本組成部分和目標的之后,你完全可以定義一個屬于你自己的工作流程。

歡迎關(guān)注本人博客:https://allen-yu.com/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 基于SourceTree的git-flow使用指南 1. 設(shè)置用戶名 首先來設(shè)置使用git時的姓名和郵箱,隨便進入...
    狂飆的蝸牛_013d閱讀 2,568評論 1 2
  • 1 Git Flow介紹 我們都知道, 在 git 的分支功能相對 svn 確實方便許多,而且也非常推薦使用分支來...
    七寸知架構(gòu)閱讀 8,047評論 20 68
  • 十一去了港澳游,都說旅行餐不要期待美味,吃飽就好,因此我們早早做足準備,搜集了當日住宿酒店周圍的各種美食,大快朵頤...
    張嚴心閱讀 787評論 4 3
  • 這個世界上從來沒有那么多的一見如故和無話不談,不過是因為我喜歡你,所以你說的話才有意義,所以你的過去我才會關(guān)心,所...
    篁唯依閱讀 430評論 0 0
  • 午睡醒來,發(fā)現(xiàn)自己還在青旅的床上,桌上還放著青旅前臺給的兩顆粽子,于是心里好一陣落寞。院子里天南海北的背包客小聲訴...
    秦斌元閱讀 308評論 0 0

友情鏈接更多精彩內(nèi)容