gitflow工作流

簡介

Gitflow工作流定義了一個圍繞項目發(fā)布的嚴格分支模型棚放,它不同的分支分配一個很明確的角色壹置,并定義分支之間如何和什么時候進行交互科汗。
Gitflow工作流仍然用遠程倉庫作為所有開發(fā)者的交互中心脐嫂。和其它的工作流一樣晃酒,開發(fā)者在本地工作并push分支到要中央倉庫中澳叉。
Gitflow工作流應被視作為指導方針隙咸,而非“鐵律”。你可以組合使用不同的流程成洗,找到適合自己項目的工作流五督。

主要分支介紹

image
  • master分支:主分支,產品的功能全部實現(xiàn)后瓶殃,最終在master分支對外發(fā)布充包,長存分支。
  • develop分支:開發(fā)分支遥椿,基于master分支克隆基矮,產品的編碼工作在此分支進行,長存分支冠场。
  • release分支:測試分支家浇,基于delevop分支克隆,產品編碼工作完成后碴裙,發(fā)布到本分支測試蓝谨,測試過程中發(fā)現(xiàn)的小bug直接在本分支進行修復灌具,修復完成后合并到develop分支。本分支屬于臨時分支譬巫,目的實現(xiàn)后可刪除分支。
  • hotfix分支:bug修復分支督笆,基于master分支或里程碑tag克隆芦昔,主要用于修復對外發(fā)布的分支,收到客戶的bug反饋后娃肿,在此分支進行修復咕缎,修復完畢后分別合并到develop分支和master分支。本分支屬于臨時分支料扰,目的實現(xiàn)后可刪除分支凭豪。
  • feature分支:功能特征分支,基于develop分支克隆晒杈,主要用于多人協(xié)助開發(fā)場景或探索性功能驗證場景嫂伞,功能開發(fā)完畢后合并到develop分支。feature分支可創(chuàng)建多個拯钻,屬于臨時分支帖努,目的實現(xiàn)后可刪除分支。

示例

下面的例子將演示gitflow流程如何被用來管理一次產品發(fā)布粪般。假設你已經創(chuàng)建好了一個遠程倉庫拼余。

(1)基于master分支,創(chuàng)建develop分支

image
git checkout -b develop      /* 基于master分支建立develop分支亩歹,并切換到develop分支 */
git push -u origin develop /* 推送develop分支到遠程倉庫 */

(2)其他開發(fā)者應該clone遠程倉庫匙监,并且為develop創(chuàng)建一個追蹤分支。

git clone https://github.com/haishancheng/gitTest.git /* clone遠程倉庫 */
git checkout -b develop origin/develop /* 基于遠程倉庫的develop分支建立本地的develop分支進行開發(fā) */

(3)完成部署小作,進入開發(fā)

到現(xiàn)在亭姥,所有人都把包含有完整歷史的分支(develop)在本地配置好了。此時所有人都可以進行開發(fā)了躲惰。假設工程師A和工程師B開始開發(fā)新功能致份。他們需要為各自的功能創(chuàng)建相應的分支。新分支不是基于master分支础拨,而是應該基于develop分支氮块。然后他們各自在自己的功能開發(fā)分支上開展工作。通常就是這種git三部曲:edit诡宗,stage滔蝉,commit。


image
 git checkout -b feature-xxx develop /* 基于develop分支建立各自的feature分支塔沃,并切換到feature分支 */
 …coding中…    /* 代碼編寫中*/
 git add **.** /* 提交修改到暫存區(qū)*/
 git commit -m "提交注釋" /* 提交到本地倉庫*/

(4)功能開發(fā)完畢

工程師A的功能開發(fā)完畢了蝠引,他需要所完成的功能合并入develop分支,并推送到遠程倉庫


image
git checkout develop /* 切換到develop分支 */
git pull origin develop /* 執(zhí)行代碼拉取操作,防止代碼沖突 */
git merge feature-xxx /* 將完成的功能分支合并入develop分支*/
git push origin develop /* 推送到遠程倉庫 */
git branch -d feature-xxx /* 刪掉功能分支*/

(5)進行測試并且修復bug

工程師A階段性的開發(fā)工作已完成螃概,需要為產品發(fā)布的準備工作矫夯。啟動測試工作,將代碼發(fā)布到測試分支release吊洼,并推向遠程倉庫训貌。測試工程師提交Bug后,開發(fā)人員在release分支上修復bug冒窍。


image
git checkout -b release /* 基于develop分支建立release分支递沪,并切換到release分支 */
git push origin release /* 將release分支推送到遠程release分支 */
…解決bug coding中…      /* 解決bug中 */
git add **.** /* 提交修改到暫存區(qū)*/
git commit -m "修復說明中最好添加Bug#BugID關鍵字" /* 提交到本地倉庫*/

(6)修完bug,合回master和develop分支

bug修復完畢之后综液,工程師A就要把修復完的測試分支合并入master和develop款慨,然后再將測試分支刪除。


image
git checkout master /* 切換到master分支 */
git merge release /* 合并release分支到master分支 */
git push origin master    /* 推送master分支到遠程倉庫master分支 */
git checkout develop      /* 切換到develop分支 */
git merge release /* 合并release分支到master分支 */
git push origin develop  /* 推送develop分支到遠程倉庫develop分支 */
git branch -d release /* 刪掉本地release分支 */
git push origin --delete release /* 刪掉遠程倉庫的release分支 */

(7)打tag標簽

打一個里程碑tag標簽谬莹,并推送到遠程倉庫檩奠,就可以發(fā)布了

git checkout master  /* 切換到master分支 */
git tag -m "task#003v1.0.0首版發(fā)布" v1.0.0.181018 /* 創(chuàng)建里程碑tag */
git push origin v1.0.0.181018 /* 推送里程碑tag到遠程倉庫 */

(8)線上bug修復

  • 用戶發(fā)現(xiàn)了一個bug,基于master(或tag)創(chuàng)建了一個用于維護的分支(hotfix分支)届良,修復完畢之后合入master合develop分支


    image
git checkout-b hotfix-v1.0.0.181018 v1.0.0.181018 /* 基于tag創(chuàng)建hotfix分支*/
… fix the bug…                              /* 修復bug*/
git checkout master                      /* 切換到master分支 */
git merge hotfix-v1.0.0.181018      /* 合并hotfix分支到master分支 */
git push origin master /* 推送master分支到遠程倉庫master分支 */
git checkout develop /* 切換到develop分支 */
git merge hotfix-v1.0.0.181018      /* 合并hotfix分支到master分支 */
git push origin develop /* 推送develop分支到遠程倉庫develop分支 */
git branch -d hotfix-v1.0.0.181018 /* 刪掉本地hotfix分支 */
git push origin --delete hotfix-v1.0.0.181018 /* 刪掉遠程倉庫的hotfix分支 */
  • 打一個新的里程碑tag標簽笆凌,并推送到遠程
git checkout master /* 切換到master分支 */
git tag -m "Bug#002修復某某Bug" v1.0.1.181019 /* 創(chuàng)建里程碑tag */
git push origin v1.0.1.181019 /* 推送里程碑tag到遠程倉庫 */
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市士葫,隨后出現(xiàn)的幾起案子乞而,更是在濱河造成了極大的恐慌,老刑警劉巖慢显,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爪模,死亡現(xiàn)場離奇詭異,居然都是意外死亡荚藻,警方通過查閱死者的電腦和手機屋灌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來应狱,“玉大人共郭,你說我怎么就攤上這事〖采耄” “怎么了除嘹?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岸蜗。 經常有香客問我尉咕,道長,這世上最難降的妖魔是什么璃岳? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任年缎,我火速辦了婚禮悔捶,結果婚禮上,老公的妹妹穿的比我還像新娘单芜。我一直安慰自己蜕该,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布洲鸠。 她就那樣靜靜地躺著蛇损,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坛怪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天股囊,我揣著相機與錄音袜匿,去河邊找鬼。 笑死稚疹,一個胖子當著我的面吹牛居灯,可吹牛的內容都是我干的。 我是一名探鬼主播内狗,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼怪嫌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柳沙?” 一聲冷哼從身側響起岩灭,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赂鲤,沒想到半個月后噪径,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡数初,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年找爱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泡孩。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡车摄,死狀恐怖,靈堂內的尸體忽然破棺而出仑鸥,到底是詐尸還是另有隱情吮播,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布锈候,位于F島的核電站薄料,受9級特大地震影響,放射性物質發(fā)生泄漏泵琳。R本人自食惡果不足惜摄职,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一誊役、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谷市,春花似錦蛔垢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至创泄,卻和暖如春艺玲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞠抑。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工饭聚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搁拙。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓秒梳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親箕速。 傳聞我的和親對象是個殘疾皇子酪碘,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內容

  • 前言 大家好!在下游回來了盐茎!不啰嗦快進正題兴垦!本篇文章是面對剛開始接觸Git的新手,所講命令并不全庭呜,在文章結束會放入...
    老匡話Android閱讀 3,922評論 -2 18
  • 大家好募谎,我是IT修真院北京分院第22期學員扶关,一枚正直善良的web程序員。 1.背景介紹 什么是Git工作流数冬? Gi...
    古碑先生閱讀 848評論 0 0
  • 1.背景介紹 什么是Git工作流拐纱? Git工作流你可以理解為工作中團隊成員遵守的一種代碼管理方案铜异,在Git中有以下...
    cczhuc閱讀 9,438評論 1 21
  • 主要了解git的一些基本的團隊協(xié)作命令,和GitFlow工作流指南 git 團隊協(xié)作的一些命令 1.開分支 2.切...
    DeerRun閱讀 693評論 0 10
  • 學習完整課程請移步 互聯(lián)網 Java 全棧工程師 本節(jié)視頻 【視頻】Git工作流指南-GitFlow工作流 概述 ...
    擼帝閱讀 2,100評論 0 40