git 工作流總結(jié)

之前開(kāi)的坑來(lái)補(bǔ)。

如何利用 Git 的團(tuán)隊(duì)協(xié)作是個(gè)問(wèn)題游昼,處理不好會(huì)讓工作事倍功半是牢。

我在學(xué)習(xí)的過(guò)程中了解到了4種 Git 團(tuán)隊(duì)協(xié)作的方式斯稳。

1.中心化工作流
2.基于功能分支的工作流
3.Gitflow 工作流
4.Fork 工作流

中心化工作流

中心化工作流將中央倉(cāng)庫(kù)作為項(xiàng)目中所有修改的唯一入口。這種工作流不需要 master 之外的其他分支庄萎。

如何工作

開(kāi)發(fā)者將中央倉(cāng)庫(kù) clone 到本地后開(kāi)始工作踪少。在他們的本地倉(cāng)庫(kù)中,可以修改文件和提交更改糠涛,但是秉馏,所有新的提交都保存在本地,和中央倉(cāng)庫(kù)完全隔離脱羡。開(kāi)發(fā)者可以將 upstream 的同步推遲到他們方便的時(shí)候去做萝究。


管理沖突

在開(kāi)發(fā)者發(fā)布功能之前,需要先 fetch 更新到最新到中央倉(cāng)庫(kù)锉罐,在它們之上 rebase 自己到更改帆竹。 這樣的優(yōu)點(diǎn)是可以留下完美的線性歷史。

這套協(xié)作方式對(duì)于 SVN 的使用團(tuán)隊(duì)來(lái)說(shuō)很棒脓规,但是沒(méi)有用到 Git 分布式的優(yōu)點(diǎn)栽连。


image.png

Feature 分支工作流

當(dāng)你熟練使用 Git 之后,在你的開(kāi)發(fā)流程中添加功能分支是一個(gè)非常能促進(jìn)團(tuán)隊(duì)協(xié)作的方式。
這種工作流的好處是秒紧,多個(gè)開(kāi)發(fā)者專(zhuān)注自己的功能而不會(huì)打擾中央倉(cāng)庫(kù)绢陌。還能保證 master 分支永遠(yuǎn)不會(huì)包含質(zhì)量有問(wèn)題的代碼,給持續(xù)集成環(huán)境帶來(lái)了很大好處熔恢。

封裝功能的開(kāi)發(fā)方式使得 Pull Request 的使用更加方便脐湾。它可以在開(kāi)發(fā)者在功能并入項(xiàng)目之前一起參與討論,提出問(wèn)題叙淌,或者尋求建議秤掌。

如何工作

Feature 分支工作流同樣使用中央倉(cāng)庫(kù)的概念,master 分支代表官方的項(xiàng)目歷史鹰霍。開(kāi)發(fā)者每次進(jìn)行新的工作時(shí)闻鉴,創(chuàng)建一個(gè)新的分支,該分支名稱(chēng)應(yīng)為描述功能或者針對(duì)某一 issue 茂洒。
feature 分支也應(yīng)該被推送到中央倉(cāng)庫(kù)孟岛。這使得你和其他開(kāi)發(fā)者共享這個(gè)功能,而又不會(huì)改變官方代碼督勺。


Pull Request 是分支工作流里非常便利的工具蚀苛,有人如果完成了一個(gè)功能,他們不會(huì)立刻并入master玷氏。他們將 feature 分支推送到中央倉(cāng)庫(kù)發(fā)布一個(gè) Pull Request 堵未。這樣可以在并入主代碼庫(kù)之前讓所有其他開(kāi)發(fā)者審查代碼。Pull Request 也是一個(gè)討論板塊盏触,任何人遇到問(wèn)題需要幫助時(shí)可以發(fā)起一個(gè) Pull Request 讓其他開(kāi)發(fā)者看到渗蟹。

GitFlow 工作流

GitFlow工作流相比功能分支工作流沒(méi)有增加新的概念,它給不同的分支制定的不同的功能赞辩,嚴(yán)格定義了它們應(yīng)該怎樣以及何時(shí)進(jìn)行交流雌芽。

開(kāi)發(fā)分支

對(duì)于一個(gè)開(kāi)發(fā)人員來(lái)說(shuō),開(kāi)發(fā)分支是打交道最多的分支辨嗽。每增加一個(gè)功能世落,就在開(kāi)發(fā)分支的基礎(chǔ)上新建一個(gè)功能分支,每當(dāng)功能開(kāi)發(fā)完成時(shí)糟需,它會(huì)杯合并會(huì)開(kāi)發(fā)分支屉佳。功能分支 永遠(yuǎn)不應(yīng)該跟 master 交互。

發(fā)布分支

一旦 開(kāi)發(fā)分支的新功能開(kāi)發(fā)到一定程度(deadline 或者 其他原因)洲押,你可以從 開(kāi)發(fā)分支 fork 出來(lái)一個(gè)分支發(fā)布武花。這個(gè)分支的創(chuàng)建開(kāi)始了下一個(gè)發(fā)布周期。只有和發(fā)布有關(guān)的工作應(yīng)該在詞分支上進(jìn)行杈帐。

發(fā)布完成后体箕,發(fā)布分支將合并進(jìn) master专钉,并打上版本號(hào)標(biāo)簽。另外也應(yīng)該合并回 develop 累铅,后者可能在發(fā)布啟動(dòng)后又有了新的改動(dòng)跃须。

通常使用一個(gè)專(zhuān)門(mén)的分支來(lái)準(zhǔn)備確保一個(gè)團(tuán)隊(duì)修復(fù)當(dāng)前發(fā)布的功能,其他團(tuán)隊(duì)可以開(kāi)發(fā)下一個(gè)發(fā)布的功能娃兽。

維護(hù)分支

維護(hù)分支 (hotfix)用來(lái)緊急給產(chǎn)品的發(fā)布打上布丁菇民,這是唯一可以從 master 上 fork 的分支。修復(fù)完成后换薄,它們應(yīng)該被并入 master 和 develop 分支玉雾。

實(shí)際的工作流程翔试,則需要根據(jù)上面規(guī)則和實(shí)際情況進(jìn)行詳細(xì)的規(guī)劃轻要。

Fork 工作流

Fork 工作流不同與其他幾個(gè)工作流。這個(gè)工作流可以讓每個(gè)開(kāi)發(fā)者都擁有一個(gè)服務(wù)端倉(cāng)庫(kù)垦缅。也就是說(shuō)每個(gè)貢獻(xiàn)者都有兩個(gè)Git倉(cāng)庫(kù)冲泥,一個(gè)開(kāi)放的服務(wù)端倉(cāng)庫(kù),和私有的倉(cāng)庫(kù)壁涎。

Fork 工作流的主要有點(diǎn)在于代碼可以輕易的整合進(jìn)項(xiàng)目凡恍,而不需要每個(gè)人都推送到單一的中央倉(cāng)庫(kù)。開(kāi)發(fā)者推送他們自己的服務(wù)端倉(cāng)庫(kù)怔球,只有項(xiàng)目管理者可以推送到官方倉(cāng)庫(kù)嚼酝。這使得管理者可以結(jié)束任何開(kāi)發(fā)者的提交,卻不需要給他們中央倉(cāng)庫(kù)的權(quán)限竟坛。

在工作項(xiàng)目中闽巩,本源規(guī)定了一套 Git Flow 工作流,后來(lái)因?yàn)殚_(kāi)發(fā)者只有我一個(gè)人(partner在比較閑的時(shí)候時(shí)不時(shí)會(huì)來(lái)貢獻(xiàn)幾個(gè)功能)担汤,并且沒(méi)有 中央代碼庫(kù) 的權(quán)限涎跨。所以后來(lái)就逐漸轉(zhuǎn)變成了 Fork 工作流。

相比前三個(gè)工作流崭歧,F(xiàn)ork 工作流使用起來(lái)更簡(jiǎn)單隅很,且最安全。因?yàn)樨暙I(xiàn)代碼的人并不干擾中央倉(cāng)庫(kù)率碾,只通過(guò) Pull Request 來(lái)和中央代碼庫(kù)進(jìn)行交互叔营,最適用的場(chǎng)景就是開(kāi)源倉(cāng)庫(kù),和松散型的開(kāi)發(fā)團(tuán)隊(duì)使用所宰。

以上就是在和 Partner 尋找有效的工作方式時(shí)审编,學(xué)習(xí)到的 Git 團(tuán)隊(duì)工作流程。以后如果遇到其他新奇的工作流程會(huì)再補(bǔ)充更新歧匈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垒酬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勘究,老刑警劉巖矮湘,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異口糕,居然都是意外死亡缅阳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門(mén)景描,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)十办,“玉大人,你說(shuō)我怎么就攤上這事超棺∠蜃澹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵棠绘,是天一觀的道長(zhǎng)件相。 經(jīng)常有香客問(wèn)我,道長(zhǎng)氧苍,這世上最難降的妖魔是什么夜矗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮让虐,結(jié)果婚禮上紊撕,老公的妹妹穿的比我還像新娘。我一直安慰自己赡突,他們只是感情好对扶,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著麸俘,像睡著了一般辩稽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上从媚,一...
    開(kāi)封第一講書(shū)人閱讀 52,895評(píng)論 1 314
  • 那天逞泄,我揣著相機(jī)與錄音,去河邊找鬼拜效。 笑死喷众,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的紧憾。 我是一名探鬼主播到千,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赴穗!你這毒婦竟也來(lái)了憔四?” 一聲冷哼從身側(cè)響起膀息,我...
    開(kāi)封第一講書(shū)人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎了赵,沒(méi)想到半個(gè)月后潜支,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柿汛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年冗酿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片络断。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裁替,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出貌笨,到底是詐尸還是另有隱情弱判,我是刑警寧澤,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布躁绸,位于F島的核電站裕循,受9級(jí)特大地震影響臣嚣,放射性物質(zhì)發(fā)生泄漏净刮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一硅则、第九天 我趴在偏房一處隱蔽的房頂上張望淹父。 院中可真熱鬧,春花似錦怎虫、人聲如沸暑认。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蘸际。三九已至,卻和暖如春徒扶,著一層夾襖步出監(jiān)牢的瞬間粮彤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工姜骡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留导坟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓圈澈,卻偏偏與公主長(zhǎng)得像惫周,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子康栈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361

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

  • 多種多樣的工作流使得在項(xiàng)目中實(shí)施Git時(shí)變得難以選擇递递。這份教程提供了一個(gè)出發(fā)點(diǎn)喷橙,調(diào)查企業(yè)團(tuán)隊(duì)最常見(jiàn)的Git工作流。...
    JSErik閱讀 4,420評(píng)論 2 8
  • 今天跟往常一樣登舞,女兒放學(xué)回來(lái)先去寫(xiě)作業(yè)了重慢,我好像都不記得從什么時(shí)候開(kāi)始,女兒自己主動(dòng)寫(xiě)作業(yè)逊躁,不在是我催促...
    王藝璇_5b7c閱讀 195評(píng)論 0 0
  • 偶得一樹(shù)梨花開(kāi)似踱,始覺(jué)皺意春風(fēng)來(lái)。 片雨淅零聽(tīng)墜意稽煤,又逢新葉映扉臺(tái)核芽。 紅葉落地,婉轉(zhuǎn)此生秋意里酵熙。 日朗風(fēng)清轧简,待得云開(kāi)...
    凌空落雪閱讀 362評(píng)論 3 3
  • 狗兒子
    劉東華生活筆記閱讀 220評(píng)論 0 0
  • 一、編輯距離(Levenshtein距離) 簡(jiǎn)介 這個(gè)距離是1965年一個(gè)戰(zhàn)斗名族叫Levenshtein的一個(gè)發(fā)...
    如煙花非花閱讀 1,549評(píng)論 0 1