git workflow

?git因為有分支的存在,才構(gòu)成了多工作流的特色妹蔽。在多人協(xié)作的項目開發(fā)中椎眯,分支很多,雖然各自在分支上互不干擾讹开,但是我們總歸需要把分支合并到一起盅视。真實項目上會遇到很多問題,比如版本迭代旦万、版本發(fā)布闹击、bug修復(fù)、臨時新增功能等等成艘,為了更好的管理代碼赏半,需要制定一個工作流程贺归。這個時候就出現(xiàn)了git flow、github flow断箫、gitlab flow拂酣,當(dāng)然也有很多公司將它們混和使用。

?其中g(shù)it flow出現(xiàn)的最早仲义,github flow 在git flow的基礎(chǔ)上婶熬,做了一些優(yōu)化,適用于CI埃撵。而gitlab flow出現(xiàn)的時間較晚赵颅,所以綜合前面兩種工作流的優(yōu)點,制成了一個新的flow暂刘。

git flow

?git flow可以大致分為主要分支和協(xié)助分支饺谬。

主要分支

?在git flow中代碼倉庫中會一直存在以下兩個分支:

  • master
  • develop

?其中origin/master分支上的最新代碼永遠(yuǎn)是版本發(fā)布狀態(tài),origin/develop分支上對應(yīng)的是最新開發(fā)進(jìn)度谣拣。

?當(dāng)develop上的代碼達(dá)到穩(wěn)定程度募寨,可以發(fā)布版本的時候,develop這些修改的方式會以一些特定的方式合并到master上去森缠,然后標(biāo)記對應(yīng)的版本號拔鹰。

協(xié)助分支

?除了主要分支,git flow的開發(fā)模式還需要一系列的協(xié)助分支贵涵,來幫助更好的功能的并行開發(fā)格郁,簡化功能開發(fā)和問題修復(fù)。協(xié)助分支分為以下三類:

  • Feature Branch
  • Release Branch
  • Hotfix Branch

?Feature分支用來做分模塊功能開發(fā)独悴,命名看開發(fā)者喜好例书,模塊完成之后,會合并到develop,然后刪除自己刻炒。

?Release分支是用來做版本發(fā)布的預(yù)發(fā)布分支决采,建議命名為release-xxx。例如在1.0.0版本坟奥,develop分支功能全開發(fā)完之后树瞭,提交給測試之后,會從develop分支拉出一個Release-1.0.0分支爱谁,測試給推送給過來的小問題晒喷,在release-1.0.0分支上修改,測試完畢準(zhǔn)備發(fā)布的時候访敌,會把代碼合并到master和develop分支上凉敲,master分支合并完后會打?qū)?yīng)的tag,比如v-1.0.0。為了在測試的時候不影響下一個版本的功能并行開發(fā)爷抓,刪除對應(yīng)release分支势决。

?Hotfix分支主要是為了解決正式上線版本有一些緊急的bug。比如線上版本上出現(xiàn)了很嚴(yán)重的bug蓝撇,需要理解修復(fù)果复。這個時候我們需要從master拉出一個對應(yīng)的分支,比如取名hotfix-xxx,解決完bug渤昌,提交測試虽抄,沒問題然后合并到對應(yīng)到develop和master,并給master打?qū)?yīng)的tag。然后刪除hotfix分支独柑。

看看官網(wǎng)的流程圖:


git flow

官網(wǎng)推薦我們git merge的時候加上 no-ff參數(shù)极颓,意思就是不用fast-forword的合并方式,而是有策略的合并群嗤,這樣會讓我們多一個合并提交。這樣保證了一個很清晰的提交歷史兵琳,可以看到被合并分支的存在狂秘。


區(qū)別

github flow

github flow就簡單太多了,他只有一個長期分支-master分支躯肌。這個分支上的代碼永遠(yuǎn)是發(fā)布狀態(tài)者春。一般這個分支的會設(shè)置protected分支保護(hù),只有有權(quán)限的人才能推送代碼到master分支清女。

當(dāng)需要開發(fā)新功能時钱烟,需要從master分支創(chuàng)建一個功能分支。本地分支開發(fā)完代碼之后需要定時向遠(yuǎn)程分支推送代碼嫡丙。當(dāng)你需要幫助或者你想合并分支的時候拴袭,可以發(fā)起一個pull request(對應(yīng)的gitlab merge request),當(dāng)review或者討論通過后曙博,代碼會合并到目標(biāo)分支拥刻,一旦合并到master分支般哼,就應(yīng)該立即發(fā)布。惠窄。

通常這個會配合ci同時使用蒸眠,當(dāng)代碼一有變動杆融,就自動發(fā)布楞卡。這里pull request就跟拉個討論組差不多,提供了評論功能支持。可以選擇相關(guān)的人參與,而且參與的人還可以向你的分支提交代碼。還有一個issue tracking(問題追蹤)功能,也就是提交信息中包含 fix #1等信息就可以自動關(guān)閉對應(yīng)的編號的issue,一般未解決的issue為open,解決了就是closed呐芥。

gitlab flow

gitlab flow的出現(xiàn)當(dāng)然是為了補足git flow光绕、github flow的不足媒至。
git flow暴露了很多問題:

  1. 默認(rèn)工作分支是develop,需要從master切換。
  2. hotfix和release分支他們分別從master分支拴孤、develop分支創(chuàng)建司顿,使用完畢后,必須合并回master和develop伞租,可能在實際開發(fā)中會忘記泞坦。
  3. hotfix和release分支在快速迭代的項目里贰锁,基本用不到,開發(fā)完就直接合并到master了滤蝠,出現(xiàn)問題develop修復(fù)直接發(fā)布下一個版本了豌熄。

github flow簡化了git flow的流程,一定程度上解決了上面的問題物咳,還提供了ui操作工具锣险。但是github flow也會存在一些問題,比如:

  1. 版本發(fā)布會被推遲(比如并行開發(fā)移動端,需要發(fā)布)
  2. 需要不同環(huán)境的部署(例如:測試環(huán)境(即之前公司用的uat)芯肤,預(yù)發(fā)環(huán)境(之前公司用的stage)巷折,正式環(huán)境(之前用的console));
  3. 不同的版本發(fā)布和bug修復(fù)。(所以一個分支根本不夠崖咨。)

針對問題1. gitlab flow 就提供了prodution 分支锻拘,比如上面說的console。專門同來發(fā)布版本掩幢。
針對問題2. gitlab flow提供了 多個prodution分支逊拍,比如uat,stage,console。uat沒問題上升到stage,stage沒問題上升到console.
針對問題3. gitlab flow 建議的做法是每一個穩(wěn)定的版本际邻,都要從master分支上拉出一個分支芯丧,發(fā)現(xiàn)問題就從對應(yīng)拉出的分支上創(chuàng)建修復(fù)分支,完成之后世曾,先合并到master,才能合并release缨恒。

總之,git還提供了很多自定義工作流的hook, .git/hooks目錄下轮听。分為客戶端hook和服務(wù)器端hook骗露。這個我了解一下,感覺git還是很強大的血巍。萧锉。

近況

最近換了一個工作,工作雖然是個創(chuàng)業(yè)公司述寡,但是不得不說我很滿意柿隙。大佬們很耐心,會很耐心的教鲫凶,我們不懂也會提供思路教我們禀崖,讓我們自己去學(xué),給我們時間學(xué)螟炫。想起以前十來個模塊的業(yè)務(wù)代碼波附,內(nèi)心是崩潰的。昼钻。如果自己不擠出時間學(xué)掸屡,是很難有進(jìn)步的。從去年開始上班到現(xiàn)在(雖然現(xiàn)在還是很菜)然评,但是總體感覺進(jìn)步了不少(對比以前自己是個天天泡網(wǎng)吧的網(wǎng)癮少年折晦,除了打游戲啥也不會。)沾瓦,不管是以前公司满着,還是現(xiàn)在的公司谦炒,心里都是非常感謝的。风喇。

不多BB了 宁改,下面拿出自己塵封已久的博客:CBC
前端登錄的時候有點小bug,懂nginx大佬可以幫我看看,登錄的時候看下瀏覽器控制臺魂莫。當(dāng)然后臺系統(tǒng)就不提供出來了还蹲。。
偶爾看看電影可以去這:電影
賬號:cbc 密碼:674181203
當(dāng)然你可以注冊賬號耙考,人臉識別服務(wù)器上用不了(沒有域名谜喊,瀏覽器不給打開攝像頭,本地是可以的)倦始,注冊的時候可以跳過斗遏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鞋邑,隨后出現(xiàn)的幾起案子诵次,更是在濱河造成了極大的恐慌,老刑警劉巖枚碗,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逾一,死亡現(xiàn)場離奇詭異,居然都是意外死亡肮雨,警方通過查閱死者的電腦和手機遵堵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怨规,“玉大人陌宿,你說我怎么就攤上這事∫窝牵” “怎么了限番?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵舱污,是天一觀的道長呀舔。 經(jīng)常有香客問我,道長扩灯,這世上最難降的妖魔是什么媚赖? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮珠插,結(jié)果婚禮上惧磺,老公的妹妹穿的比我還像新娘。我一直安慰自己捻撑,他們只是感情好磨隘,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布缤底。 她就那樣靜靜地躺著,像睡著了一般番捂。 火紅的嫁衣襯著肌膚如雪个唧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天设预,我揣著相機與錄音徙歼,去河邊找鬼。 笑死鳖枕,一個胖子當(dāng)著我的面吹牛魄梯,可吹牛的內(nèi)容都是我干的蹂午。 我是一名探鬼主播姆泻,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼壹店,長吁一口氣:“原來是場噩夢啊……” “哼檀葛!你這毒婦竟也來了瓷患?” 一聲冷哼從身側(cè)響起斩狱,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤之众,失蹤者是張志新(化名)和其女友劉穎呀页,沒想到半個月后则奥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體考润,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年读处,在試婚紗的時候發(fā)現(xiàn)自己被綠了糊治。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡罚舱,死狀恐怖井辜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情管闷,我是刑警寧澤粥脚,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站包个,受9級特大地震影響刷允,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碧囊,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一树灶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糯而,春花似錦天通、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烘豹。三九已至,卻和暖如春诺祸,著一層夾襖步出監(jiān)牢的瞬間吴叶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工序臂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蚌卤,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓奥秆,卻偏偏與公主長得像逊彭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子构订,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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