團隊開發(fā)Git分支管理策略

開發(fā)生涯的前三年都是使用 svn警绩,回首放佛如前世。自從用了 git 逮矛,整個人都神經(jīng)了毡证。

下面的內(nèi)容肯定不是什么教你如何用git提交代碼,合并分支之類的』煮荩現(xiàn)在本人要從寫術的層面提升一下自己文章的品質(zhì)到道的層面葛假。

使用git帶來的分支疑惑

git 為什么好,為什么要用 git滋恬,這不是我本文想要說明的問題聊训。

這里想要給大家分享一下自己使用過程中產(chǎn)生的疑惑,以及解決的這些疑惑的過程恢氯。話又說回來带斑,我現(xiàn)在依然充滿疑惑。真不知道30歲的時候會不會不惑勋拟。

在使用 git 過程中勋磕,它的分支功能讓我真的欣喜若狂,不過這是把雙刃劍敢靡,一不小心你會得到這種git路徑圖:

image

圖片來源:阮一峰老師博客

我的疑惑:

  1. 那么團隊中我們該使用怎樣的分支策略來進行開發(fā)協(xié)作挂滓?
  2. 在多人的團隊中,我們應該在 master 分支上直接開發(fā)嗎啸胧?
  3. 如果線上產(chǎn)生了bug該通過什么樣方式的分支去修復赶站?
  4. 當有多個分支的時候幔虏,測試如何有效的參與進來每一個分支的測試?

用成熟的工作流來解決問題

在解答上面的疑惑前贝椿,先介紹幾個工作流想括,然后通過工作流的模式,來進行解答烙博。因為我們必須在某種設定的情景下瑟蜈,才能討論解決問題的思路。

下面三種工作流方式渣窜,都是采用功能驅動開發(fā)铺根,也就是先有需求產(chǎn)生,然后誕生對應的分支乔宿,然后開發(fā)位迂,最后合并回來,完成使命被刪除予颤。

  • Git flow
  • Github flow
  • Gitlab flow

關于這三種工作流的詳細介紹,建議看看這篇文章-阮一峰

我現(xiàn)在采用的是 Git flow 冬阳,經(jīng)過自己的實踐蛤虐,確實好用,解決不少問題肝陪。然后如果發(fā)現(xiàn)與自己的實際情況有些出入驳庭,可以根據(jù)需求做出些變動調(diào)整。

我的選擇

我選擇了 Git flow氯窍,它的主要特點是饲常,長期存在兩個分支:

  • 主分支master
  • 開發(fā)分支develop

然后,存在三種輔助分支狼讨,都是短期的贝淤,并且一半情況下只應該存在本地,不要提交到遠程庫政供。

  • 功能分支(feature branch)
  • 補丁分支(hotfix branch)
  • 預發(fā)分支(release branch)
    在進行上面的分支時播聪,建議的命名規(guī)范:feature-xxx、release-xxx布隔、hotfix-xxx

話外:我以前喜歡用下劃線离陶,后來發(fā)現(xiàn)打中線不需要按 shift ,哈哈衅檀,從此開始中線時代招刨。

什么時候要功能分支?

當你拿到一個需求哀军,或者不是一個立馬需求上線的bug修復沉眶,那么就應該從 develop 開一個分支出來打却,完成這部分工作。完成后合并到 develop 分支沦寂。

image

什么時候要預發(fā)分支学密?

這個分支是為預發(fā)準備的,測試的介入传藏,也只應該在該分支產(chǎn)生時才介入腻暮。當我們不管是新功能開發(fā),還是一般的bug修改都差不多了毯侦。就應該從develop產(chǎn)生一個release分支哭靖,交給測試,如果有bug直接在上面修改侈离。全部完成后试幽,合并回develop,并且合并到master卦碾。

關于這個分支我得再多說幾句铺坞。因為這是非常重要的一步,如果我們使用了 git 鉤子洲胖,當合并到 master 的時候济榨,會自動發(fā)布到線上,所以這是臨上線的最后一道屏障绿映。

同時這里也解決了我一個疑惑擒滑,測試如何參與到git的每個分支中來?答案是:測試不應該參與到每個分支中來叉弦,只應該參與到release分支中去丐一。其它的開發(fā)分支,都應該由開發(fā)人員自己測試淹冰,測試沒有問題的時候才準許合并到develop库车,這就要求每一個開發(fā)要提高自己交付的產(chǎn)品質(zhì)量,如何確保自己交付的產(chǎn)品質(zhì)量樱拴?自動化測試是個不錯的選擇凝颇,好了,打住疹鳄,這不是咋們今天的主要任務拧略,這個話題改天再聊。

什么時候需要補丁分支瘪弓?

這種情況越少越好垫蛆。因為它產(chǎn)生的原因是:線上出了bug,并且必須馬上修復,不管你身在何方袱饭,當手機響起川无,拿出電腦改bug吧。

它與release 很像虑乖,都需要完成后懦趋,同時合并到:masterdevelop。不同的是疹味,它需要從master 上開一個分支出來仅叫。

image

注意這里沒有測試的介入,一半來說都是代碼上某一個小的緊急bug糙捺,雖然很嚴重诫咱,但是可以很容易改動。當然如果有一些例外情況洪灯,應該讓測試進行測試后再合并坎缭、發(fā)布。

總結

git 開發(fā)很好用签钩,但是要按照一定規(guī)則合理使用分支掏呼。

另外,除了:masterdevelop 分支铅檩,其它分支都不應該出現(xiàn)在遠程倉庫中憎夷。

git一定要結合它的各種鉤子來使用,提升開發(fā)效率柠并。這里后面來介紹下岭接。

參考資料:

介紹

我是何磊富拗,主要工作就是寫代碼臼予,持續(xù)創(chuàng)業(yè)者(之所以持續(xù)是因為到現(xiàn)在還沒有干成功過一件事)。如果你有興趣歡迎關注我啃沪,我會分享技術粘拾,還有生活,當然還有我創(chuàng)業(yè)的故事(說出我的痛创千,讓你開心一下)缰雇。

我的博客地址: https://helei112g.github.io

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市追驴,隨后出現(xiàn)的幾起案子械哟,更是在濱河造成了極大的恐慌,老刑警劉巖殿雪,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暇咆,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機爸业,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門其骄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扯旷,你說我怎么就攤上這事拯爽。” “怎么了钧忽?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵毯炮,是天一觀的道長。 經(jīng)常有香客問我惰瓜,道長否副,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任崎坊,我火速辦了婚禮备禀,結果婚禮上,老公的妹妹穿的比我還像新娘奈揍。我一直安慰自己曲尸,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布男翰。 她就那樣靜靜地躺著另患,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛾绎。 梳的紋絲不亂的頭發(fā)上昆箕,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音租冠,去河邊找鬼鹏倘。 笑死,一個胖子當著我的面吹牛顽爹,可吹牛的內(nèi)容都是我干的纤泵。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼镜粤,長吁一口氣:“原來是場噩夢啊……” “哼捏题!你這毒婦竟也來了?” 一聲冷哼從身側響起肉渴,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤公荧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后同规,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體循狰,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡庸诱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了晤揣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桥爽。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昧识,靈堂內(nèi)的尸體忽然破棺而出钠四,到底是詐尸還是另有隱情,我是刑警寧澤跪楞,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布缀去,位于F島的核電站,受9級特大地震影響甸祭,放射性物質(zhì)發(fā)生泄漏缕碎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一池户、第九天 我趴在偏房一處隱蔽的房頂上張望咏雌。 院中可真熱鬧,春花似錦校焦、人聲如沸赊抖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氛雪。三九已至,卻和暖如春耸成,著一層夾襖步出監(jiān)牢的瞬間报亩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工井氢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弦追,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓毙沾,卻偏偏與公主長得像骗卜,于是被迫代替她去往敵國和親宠页。 傳聞我的和親對象是個殘疾皇子左胞,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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

  • 1 Git Flow介紹 我們都知道, 在 git 的分支功能相對 svn 確實方便許多,而且也非常推薦使用分支來...
    七寸知架構閱讀 7,831評論 20 68
  • Git分支管理 master:主分支举户,當前分支上的代碼隨時可以直接發(fā)布烤宙,并且只能通過Pull Request從其他...
    UEUEO閱讀 9,617評論 5 33
  • 文/騎馬上岸的人 春天死了 是的,春天死了 它臨死的時候 留下一顆種子 在風里 在云里 在土地缺氧的身體里 我是一...
    騎馬上岸的人閱讀 734評論 65 59
  • 在視覺設計工作中俭嘁,大家總習慣將重點放在圖標和色彩上躺枕。但實際上,作為一個閱讀類app,思考如何讓文章更易于閱讀是和圖...
    老王的餅店閱讀 438評論 0 0
  • “忽如一夜春風來拐云,千樹萬樹梨花開” “陽春二三月罢猪,草與水同色” “春晚綠野秀,巖高百云屯” 自然界里點滴的變化...
    月明沙閱讀 343評論 0 1