前端開(kāi)發(fā)-Gitflow簡(jiǎn)易版

Simple Gitflow

業(yè)務(wù)越來(lái)越復(fù)雜兴喂,分支也越來(lái)越多勇婴,為提高效率和規(guī)避流程錯(cuò)誤肛走,商定一個(gè)統(tǒng)一的工作流程是至關(guān)重要的辙芍。

先上圖~

gitflow-simple.png

分支

Master

  • 它是一個(gè)長(zhǎng)期分支,存在于整個(gè)項(xiàng)目周期羹与。

  • master分支上不允許任何代碼提交,只能由負(fù)責(zé)人進(jìn)行分支合并纵搁。

  • 該分支存放的應(yīng)該是隨時(shí)可供在生產(chǎn)環(huán)境中部署的代碼。

Feature

  • 臨時(shí)分支往踢,用于開(kāi)發(fā)新功能腾誉,不同業(yè)務(wù)可創(chuàng)建多個(gè)feature分支。
  • master分支創(chuàng)建峻呕,開(kāi)發(fā)測(cè)試完成利职,合并至release分支后刪除。

Release

  • 臨時(shí)分支瘦癌,用于預(yù)發(fā)布或回歸測(cè)試猪贪。
  • master分支創(chuàng)建,發(fā)布后打tag合并至master后刪除讯私。
  • 命名建議:release/1.x.x

Hotfix

  • 臨時(shí)分支热押,用于修復(fù)線上問(wèn)題。
  • master分支創(chuàng)建斤寇,發(fā)布后打tag合并至master后刪除桶癣。
  • 命名建議:hotfix/bugName

為什么沒(méi)有develop分支?

develop分支的職責(zé)已經(jīng)分配到了featurehotfix分支娘锁,這樣臨時(shí)分支的修改也不用同步到兩個(gè)分支(develop和master)牙寞,為避免混淆,所以移除了develop分支莫秆。

場(chǎng)景1:多個(gè)feature并行開(kāi)發(fā)

假設(shè)5月收到需求间雀,我們要做群密聊悔详,計(jì)劃6月上線,并且在群密聊上線前雷蹂,有個(gè)0528優(yōu)化版本要上伟端。

好了,場(chǎng)景有了匪煌,來(lái)看看具體流程怎么操作责蝠。

  1. 創(chuàng)建feature分支

master分支分別創(chuàng)建feature/groupSChat、feature/me0528萎庭,命名最好貼合業(yè)務(wù)霜医。

git checkout master
git branch feature/groupSChat
git branch feature/me0528

分支建好后,就進(jìn)入開(kāi)發(fā)和測(cè)試階段驳规;在經(jīng)歷N次提交和測(cè)試后準(zhǔn)備上線肴敛。

  1. 創(chuàng)建release分支

假設(shè)5月份版本是5.5.5 ,從master分支創(chuàng)建release/5.5.5分支吗购,然后合并feature/me0528分支医男。

// 從master分支創(chuàng)建release/5.5.5分支并切換到該分支
git checkout master
git checkout -b release/5.5.5
git merge feature/me0528
git branch -d feature/me0528
  1. 打包上線-5.5.5版本

release/5.5.5分支進(jìn)行最終測(cè)試后上線,我們打上tag并合并到master捻勉,然后刪除release/5.5.5分支镀梭。

git checkout master
git merge release/5.5.5
git tag v5.5.5
git branch -d release/5.5.5

注意,到現(xiàn)在雖然5.5.5版本上線了踱启,隔壁分支feature/groupSChat還在緊張開(kāi)發(fā)中报账,但它絲毫沒(méi)有受到影響。

  1. 群密聊feature埠偿,在經(jīng)過(guò)N次提交和測(cè)試后透罢,準(zhǔn)備上線

假設(shè)群密聊版本是6.0.0,master分支創(chuàng)建release/6.0.0分支冠蒋,然后合并feature/groupSChat分支羽圃。

git checkout master
git checkout -b release/6.0.0
git merge feature/groupSChat
git branch -d feature/groupSChat
  1. 打包上線-6.0.0版本

release/6.0.0分支進(jìn)行最終測(cè)試后上線,我們打上tag并合并到master抖剿,然后刪除release/6.0.0分支统屈。

git checkout master
git merge release/6.0.0
git tag v6.0.0
git branch -d release/6.0.0

到這里,我們并行開(kāi)發(fā)的兩個(gè)feature都上線了牙躺;開(kāi)發(fā)過(guò)程中我們創(chuàng)建的feature愁憔、release等分支,也隨發(fā)版后刪除了孽拷,倉(cāng)庫(kù)里只是多了兩個(gè)tag標(biāo)簽吨掌。

場(chǎng)景2:緊急修復(fù)線上bug

假設(shè)在場(chǎng)景1中,剛開(kāi)始做feature/me0528和feature/groupSChat功能不久,就發(fā)現(xiàn)線上版本有嚴(yán)重問(wèn)題膜宋,領(lǐng)導(dǎo)要求馬上修復(fù)后上線窿侈。這時(shí)你可能會(huì)想,我已經(jīng)有兩個(gè)分支在開(kāi)發(fā)了秋茫,該咋辦呢史简?別擔(dān)心,你還有master分支肛著,它存放著可供在生產(chǎn)環(huán)境中部署的代碼圆兵。

  1. 創(chuàng)建hotfix分支

假設(shè)這個(gè)嚴(yán)重問(wèn)題是導(dǎo)致通訊錄用不了,contact not work 枢贿?

git checkout master
git branch hotfix/contactNotWork
  1. 打包上線-5.5.1版本
git checkout master
git merge hotfix/contactNotWork
git tag v5.5.1
git branch -d hotfix/contactNotWork
  • 首先殉农,這里假設(shè)線上版本為5.5.0,bug修復(fù)后發(fā)版為5.5.1
  • 與feature分支不同的是局荚,hotfix分支的代碼基于穩(wěn)定的功能超凳,測(cè)試完畢后不需要通過(guò)release分支即可發(fā)布上線。

小結(jié)

  • 除了master分支耀态,其它都是臨時(shí)分支轮傍,倉(cāng)庫(kù)中只有master分支和正在開(kāi)發(fā)的feature分支,便于維護(hù)首装。
  • 臨時(shí)分支都是從master分支創(chuàng)建的金麸。
  • feature分支通過(guò)測(cè)試后才創(chuàng)建并合并到release分支。
  • 通過(guò)創(chuàng)建release分支簿盅,能有效避免丟失已上線的功能或bug修復(fù)代碼。
  • 場(chǎng)景中分支合并示例使用的git merge揍魂,當(dāng)然你也可以用git rebase桨醋,關(guān)于二者的區(qū)別可參考文末鏈接。

Thanks

關(guān)于本文的由來(lái)现斋,首先要感謝 騏彰同學(xué)提供的思路喜最,和現(xiàn)有團(tuán)隊(duì)的支持,才促使我整理了這篇文章庄蹋,感謝瞬内。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市限书,隨后出現(xiàn)的幾起案子虫蝶,更是在濱河造成了極大的恐慌,老刑警劉巖倦西,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件能真,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)粉铐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)疼约,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蝙泼,你說(shuō)我怎么就攤上這事程剥。” “怎么了汤踏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵织鲸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我茎活,道長(zhǎng)昙沦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任载荔,我火速辦了婚禮盾饮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懒熙。我一直安慰自己丘损,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布工扎。 她就那樣靜靜地躺著徘钥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肢娘。 梳的紋絲不亂的頭發(fā)上呈础,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音橱健,去河邊找鬼而钞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拘荡,可吹牛的內(nèi)容都是我干的臼节。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼珊皿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼网缝!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蟋定,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤粉臊,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后驶兜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體维费,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡果元,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了犀盟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片而晒。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖阅畴,靈堂內(nèi)的尸體忽然破棺而出倡怎,到底是詐尸還是另有隱情,我是刑警寧澤贱枣,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布监署,位于F島的核電站,受9級(jí)特大地震影響纽哥,放射性物質(zhì)發(fā)生泄漏钠乏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一春塌、第九天 我趴在偏房一處隱蔽的房頂上張望晓避。 院中可真熱鬧,春花似錦只壳、人聲如沸俏拱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锅必。三九已至,卻和暖如春惕艳,著一層夾襖步出監(jiān)牢的瞬間搞隐,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工远搪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劣纲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓终娃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蒸甜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子棠耕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Git分支管理 master:主分支,當(dāng)前分支上的代碼隨時(shí)可以直接發(fā)布柠新,并且只能通過(guò)Pull Request從其他...
    UEUEO閱讀 9,614評(píng)論 5 33
  • 原文推薦: A successful Git branching model 這個(gè)文章講的是Git分支模型的原理及...
    SonyaBaby閱讀 1,494評(píng)論 0 0
  • Git 倉(cāng)庫(kù)申請(qǐng)流程 1. 開(kāi)發(fā)主管向Git 管理員提交Git 倉(cāng)庫(kù)申請(qǐng)【郵件:發(fā)送給Git 管理員窍荧,抄送給項(xiàng)目經(jīng)...
    騷包霸天虎閱讀 2,071評(píng)論 0 0
  • 忽然覺(jué)得有些事情并不如我想象的那樣發(fā)生,并沒(méi)有當(dāng)初我想的那么美好了恨憎。比如愛(ài)情蕊退,比如友情郊楣,比如親情。 我覺(jué)得瓤荔,只要兩...
    繩命是入刺的井猜閱讀 128評(píng)論 0 0
  • 話說(shuō)已經(jīng)好久沒(méi)來(lái)九龍谷了净蚤,上次過(guò)來(lái)的時(shí)候,那是一個(gè)陰雨天输硝,記憶深刻的是當(dāng)時(shí)暴雨傾盆今瀑,我和兒子快速的像豹子一樣,在深...
    丹尼爾李S閱讀 320評(píng)論 0 3