91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Git Flow應(yīng)該拋棄的原因

汽車(chē)玩家 ? 來(lái)源:雷鋒網(wǎng) ? 作者:skura ? 2020-03-21 13:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導(dǎo)語(yǔ):或許,Git-flow 分支模型應(yīng)該葬身火海 。

Git-flow 是一種分支和合并方法。十年前,因?yàn)橐黄麨椤敢粋€(gè)成功的 Git 分支模型」的文章,Git-flow 變得廣為人知。

在過(guò)去的十年里,無(wú)數(shù)團(tuán)隊(duì)被這篇博文蒙在鼓里。但我敢說(shuō),這篇文章撒謊了。

如果你讀過(guò)這篇博文,你就會(huì)注意到,盡管作者聲稱(chēng)他們?cè)陧?xiàng)目中成功使用了 Git-flow,但卻故意避開(kāi)了讓項(xiàng)目成功的細(xì)節(jié)。

很多人會(huì)相信看到的博文,這其實(shí)是錯(cuò)誤的。并非所有的策略都適用于所有情況,這是一個(gè)真理。我將同樣的邏輯應(yīng)用于這個(gè)分支模型。

好吧,你們當(dāng)中的一些人不相信這個(gè)真理,所以讓我們深入研究為什么 Git-flow 分支模型應(yīng)該葬身火海。

Git-flow 的界面很復(fù)雜

Git-flow 特別復(fù)雜,甚至在考慮微服務(wù)或連續(xù)交付之前就已經(jīng)如此了。下面的圖片直觀(guān)地展示了這一點(diǎn):

Git Flow應(yīng)該拋棄的原因

圖片來(lái)源:https://nvie.com/posts/a-successful-git-branching-model/

這里有特性分支、發(fā)布分支、master 分支、dev 分支、一個(gè)緊急修復(fù)分支和 git 標(biāo)記。這些都是在構(gòu)建和發(fā)布過(guò)程中必須跟蹤、理解和考慮的事情。

更重要的是,你還需要隨時(shí)跟蹤每個(gè)分支,這造成了很高的認(rèn)知負(fù)荷。我已經(jīng)使用 git 10 年了,我甚至不確定自己是否能在精神上跟上這里的發(fā)展。

Git-flow 違反了「短命」分支規(guī)則

在 git 中,隨著在某個(gè)分支上工作人數(shù)的增加,發(fā)生合并沖突的次數(shù)將大大增加。在 Git-flow 中,這個(gè)數(shù)字增加得更多,因?yàn)檫€有三個(gè)具有不同生命周期的其他分支合并到開(kāi)發(fā)中:特性分支、發(fā)布分支和緊急修復(fù)。合并沖突發(fā)生的可能性并不是線(xiàn)性變化的,它可能會(huì)使合并沖突的概率增加三倍。

這太糟糕了。

雖然我不敢說(shuō)不采用 Git-flow 這樣的分支策略就可以避免合并沖突,但是當(dāng)所有這些分支組合在一起時(shí),引入的潛在復(fù)雜性太大了,無(wú)法忽略。如果你們公司的代碼提交速度很慢,那就沒(méi)關(guān)系。但是對(duì)于任何快速迭代的組織或初創(chuàng)企業(yè)來(lái)說(shuō),情況并非如此。

Git-flow 放棄了rebase

重新定位合并節(jié)點(diǎn)是一個(gè)復(fù)雜的話(huà)題,但它很重要。如果你使用 Git-flow,你將不得不放棄 rebase。記住,rebase 取消了合并提交,你再也看不到兩個(gè)分支組合在一起的節(jié)點(diǎn)。由于 Git-flow 的視覺(jué)復(fù)雜性,你需要可視化地跟蹤分支,這意味著如果你想解決問(wèn)題,就不需要 rebase。

Git-flow 使連續(xù)交付變得不可能

持續(xù)交付是一種實(shí)踐。在這種實(shí)踐中,團(tuán)隊(duì)以自動(dòng)化的方式直接發(fā)布到生產(chǎn)中(實(shí)際上是合并到 master)??纯椿靵y的 Git-flow,你能解釋一下如何持續(xù)地交付嗎?

整個(gè)分支模型是根據(jù)可預(yù)測(cè)的、長(zhǎng)期的發(fā)布周期進(jìn)行預(yù)測(cè)的。如果每隔幾分鐘或幾小時(shí)發(fā)布一次新代碼,開(kāi)銷(xiāo)就太大了,更不用說(shuō) CD 的中心實(shí)踐之一是向前滾動(dòng)修復(fù)。Git-flow將修補(bǔ)程序視為一個(gè)單獨(dú)的實(shí)體,需要小心地控制,并與其他工作分離開(kāi)來(lái)。

在多個(gè)存儲(chǔ)庫(kù)中不可能使用 Git-flow

隨著微服務(wù)的出現(xiàn),micro-repo 的理念也得到了更多的推動(dòng),各個(gè)團(tuán)隊(duì)可以控制他們的存儲(chǔ)庫(kù)和工作流,他們還可以控制誰(shuí)進(jìn)入了他們的存儲(chǔ)庫(kù)以及其工作流是如何工作的。

你有沒(méi)有嘗試過(guò)這樣一個(gè)復(fù)雜的分支模型:它有多個(gè)團(tuán)隊(duì),并且希望它們都在同一個(gè)頁(yè)面上?這是不會(huì)發(fā)生的。很快,這個(gè)系統(tǒng)就變成了不同 repo 的不同版本的一個(gè)清單,只有敲出 YAML 來(lái)更新清單的人知道所有東西在哪里。如果你不夠細(xì)心,「在生產(chǎn)什么」就變成了一個(gè)存在主義的問(wèn)題。

Git-flow 也不可能在 monorep 中使用

因此,如果由于協(xié)調(diào)發(fā)布的困難而取消了 micro-repo,那為什么不讓所有微服務(wù)團(tuán)隊(duì)都遵守一個(gè)大的發(fā)布分支工作流呢?

這個(gè)過(guò)程大約持續(xù) 3.2 秒。如果團(tuán)隊(duì)是獨(dú)立的,micro-repo 應(yīng)該是獨(dú)立部署的,這樣就不能很好地將你的工作流程與你在 mono repo 中創(chuàng)建的集中式分支模型聯(lián)系起來(lái)。

誰(shuí)應(yīng)該/不應(yīng)該使用 Git-flow?

如果你的團(tuán)隊(duì)每月或每季度發(fā)布一次,并且是一個(gè)并行處理多個(gè)發(fā)布的團(tuán)隊(duì),那么 Git-flow 可能是一個(gè)不錯(cuò)的選擇。如果你的團(tuán)隊(duì)是一個(gè)初創(chuàng)企業(yè),或者是一個(gè)面向 internet 的網(wǎng)站或 web 應(yīng)用程序,同一天可能發(fā)布多個(gè)版本,那 Git-flow 對(duì)你來(lái)說(shuō)就不合適了。如果你的團(tuán)隊(duì)是一個(gè)不到 10 人的微型團(tuán)隊(duì),Git-flow 會(huì)給你的工作帶來(lái)太多的規(guī)矩和開(kāi)銷(xiāo)。

另一方面,如果你的團(tuán)隊(duì)有 20 多人進(jìn)行并行發(fā)布,那么 Gitflow 可以確保不會(huì)把事情搞砸。

如果不應(yīng)該使用 Git-flow,那應(yīng)該用什么?

我不能回答。并非所有分支模型都適用于所有團(tuán)隊(duì)和所有情況。如果你練習(xí) CD,你需要一些盡可能簡(jiǎn)化過(guò)程的東西。

關(guān)鍵在于,團(tuán)隊(duì)需要反思:這個(gè)分支模型將幫助我們解決哪些問(wèn)題?會(huì)產(chǎn)生什么問(wèn)題?這種模型將鼓勵(lì)什么樣的發(fā)展?我們想鼓勵(lì)這種行為嗎?使用分支模型的最終目的都是方便軟件開(kāi)發(fā)過(guò)程中的合作,因此,需要考慮使用它的特定人群的需求,而不是互聯(lián)網(wǎng)流傳的「成功」的東西。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    207

    瀏覽量

    16943
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    從 GPIO 引腳分配的描述中發(fā)現(xiàn)引腳 1 應(yīng)該是 3.3v,但我通過(guò)萬(wàn)用表只能得到 0.75v,原因是什么?

    我們從 GPIO 引腳分配的描述中發(fā)現(xiàn)引腳 1 應(yīng)該是 3.3v,但我通過(guò)萬(wàn)用表只能得到 0.75v,原因是什么?
    發(fā)表于 02-03 07:37

    嵌入式開(kāi)發(fā)繞不開(kāi)的版本管理工具——git

    Git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),由Linux之父Linus Torvalds于2005年用C語(yǔ)言開(kāi)發(fā),主要是為了幫助管理Linux內(nèi)核開(kāi)發(fā)而創(chuàng)建的一個(gè)開(kāi)放源碼的版本控制軟件。Git與常用的版本
    的頭像 發(fā)表于 01-30 16:47 ?1332次閱讀

    驅(qū)動(dòng)650V CoolGaN? GIT G5用于電機(jī)控制應(yīng)用:IFX SOI EiceDRIVER?驅(qū)動(dòng)器的探索

    驅(qū)動(dòng)650V CoolGaN? GIT G5用于電機(jī)控制應(yīng)用:IFX SOI EiceDRIVER?驅(qū)動(dòng)器的探索 在電機(jī)控制應(yīng)用領(lǐng)域,如何高效、安全地驅(qū)動(dòng)功率開(kāi)關(guān)器件是工程師們關(guān)注的重點(diǎn)。今天,我們
    的頭像 發(fā)表于 12-18 11:50 ?670次閱讀

    案例4:傳導(dǎo)騷擾測(cè)試中應(yīng)該注意的接地環(huán)路

    案例4:傳導(dǎo)騷擾測(cè)試中應(yīng)該注意的接地環(huán)路【現(xiàn)象描述】某信息技術(shù)設(shè)備有外接信號(hào)電纜及供電電源線(xiàn)。電源口傳導(dǎo)測(cè)試時(shí),EUT接地線(xiàn)就近接參考接地板,測(cè)試配置圖如圖2.24所示,測(cè)試結(jié)果如圖2.25所示。由
    的頭像 發(fā)表于 11-21 14:43 ?530次閱讀
    案例4:傳導(dǎo)騷擾測(cè)試中<b class='flag-5'>應(yīng)該</b>注意的接地環(huán)路

    電壓暫降的原因有哪些?

    電壓暫降的原因可歸納為 電網(wǎng)側(cè)故障、負(fù)荷側(cè)擾動(dòng)、外部環(huán)境影響 三大類(lèi),其中電網(wǎng)側(cè)短路故障和負(fù)荷側(cè)沖擊性負(fù)荷啟動(dòng)是最主要誘因,兩者合計(jì)占所有暫降事件的 80% 以上。不同原因的發(fā)生場(chǎng)景、影響機(jī)制及頻率
    的頭像 發(fā)表于 10-11 17:23 ?3280次閱讀
    電壓暫降的<b class='flag-5'>原因</b>有哪些?

    ubuntu 22.04 執(zhí)行pkgs--update 失敗的原因?

    ubuntu 22.04 使用pkgs —update 失敗,我的源碼是從gitee , git 是可以正常使用的
    發(fā)表于 09-15 06:09

    【潤(rùn)開(kāi)鴻HH-SCDAYU800A開(kāi)發(fā)板試用體驗(yàn)】+系統(tǒng)編譯

    sudo apt install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev
    發(fā)表于 08-25 22:34

    FLOW Digital Infrastructure宣布在東京市中心新建數(shù)據(jù)中心

    平臺(tái)FLOW Digital Infrastructure(簡(jiǎn)稱(chēng)"FLOW")宣布,其位于東京市中心的新數(shù)據(jù)中心已開(kāi)工建設(shè)。該新數(shù)據(jù)中心由兩棟建筑組成,分別命名為T(mén)K7和TK8,總IT負(fù)載達(dá)30MW。首
    的頭像 發(fā)表于 07-31 17:31 ?686次閱讀

    RADI-FLOW-FHIGH-MSSC-Rev Pwr–Direction(R default)單向微波隔離器

    RADI-FLOW-FHIGH-MSSC-Rev Pwr–Direction(R default)隔離器是高性能單向微波傳輸器件,基于鐵氧體旋磁材料非互易特性設(shè)計(jì),專(zhuān)為優(yōu)化信號(hào)傳輸穩(wěn)定性、保護(hù)敏感
    發(fā)表于 07-24 08:49

    電機(jī)燒壞原因及處理

    電機(jī)燒壞的原因多種多樣,涉及電氣故障和機(jī)械原因等多個(gè)方面。以下是對(duì)電機(jī)燒壞原因的詳細(xì)分析以及相應(yīng)的處理措施: 一、電機(jī)燒壞原因 1. 缺相運(yùn)行: ● 電機(jī)正常運(yùn)行時(shí)三相負(fù)載為對(duì)稱(chēng)負(fù)載,
    的頭像 發(fā)表于 06-22 22:24 ?5896次閱讀
    電機(jī)燒壞<b class='flag-5'>原因</b>及處理

    Git vs Perforce P4:版本控制系統(tǒng)選型指南(附適用場(chǎng)景、團(tuán)隊(duì)類(lèi)型)

    Git適合小團(tuán)隊(duì)靈活開(kāi)發(fā),而Perforce P4更擅長(zhǎng)管理大型項(xiàng)目與二進(jìn)制資產(chǎn)。但你真的了解它們各自最適合的使用場(chǎng)景嗎?或許不是“非此即彼”,而是“如何共存”,推薦一讀!
    的頭像 發(fā)表于 06-19 17:04 ?1409次閱讀
    <b class='flag-5'>Git</b> vs Perforce P4:版本控制系統(tǒng)選型指南(附適用場(chǎng)景、團(tuán)隊(duì)類(lèi)型)

    STM32N6570-DK自帶的攝像頭運(yùn)行自帶的AI demo,畫(huà)質(zhì)特別差,這是應(yīng)該這個(gè)例程的原因,還是攝像頭不行?

    STM32N6570-DK自帶的攝像頭運(yùn)行自帶的AI demo,畫(huà)質(zhì)特別差,這是應(yīng)該這個(gè)例程的原因,還是攝像頭不行?
    發(fā)表于 06-18 07:18

    STM32N6570-DK自帶的攝像頭運(yùn)行自帶的AI demo,畫(huà)質(zhì)特別差,這是應(yīng)該這個(gè)例程的原因,還是攝像頭不行?

    STM32N6570-DK自帶的攝像頭運(yùn)行自帶的AI demo,畫(huà)質(zhì)特別差,這是應(yīng)該這個(gè)例程的原因,還是攝像頭不行?
    發(fā)表于 06-16 06:02

    主流版本控制工具Git vs Perforce P4:架構(gòu)模式、性能、大文件管理及分支管理對(duì)比詳解

    Git vs Perforce P4,如何選型?架構(gòu)模式、性能、大文件管理、分支策略四大維度對(duì)比,幫你全面了解兩者的核心差異,選擇更合適你團(tuán)隊(duì)需求的版本控制系統(tǒng)。
    的頭像 發(fā)表于 06-13 14:52 ?821次閱讀
    主流版本控制工具<b class='flag-5'>Git</b> vs Perforce P4:架構(gòu)模式、性能、大文件管理及分支管理對(duì)比詳解

    單片ADA4522-4消耗電流正常應(yīng)該是多大?溫度大致應(yīng)該在多少?

    過(guò)大; 想問(wèn)的是: 1.按此應(yīng)用場(chǎng)景,單片ADA4522-4消耗電流正常應(yīng)該是多大?溫度大致應(yīng)該在多少? 2.ADA4522-4電路及參數(shù)設(shè)計(jì)有問(wèn)題么?(如下圖) 導(dǎo)致電流過(guò)大的原因是什么?是反饋電阻值過(guò)小
    發(fā)表于 03-24 06:40