国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Git Flow應該拋棄的原因

汽車玩家 ? 來源:雷鋒網 ? 作者:skura ? 2020-03-21 13:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導語:或許,Git-flow 分支模型應該葬身火海 。

Git-flow 是一種分支和合并方法。十年前,因為一篇名為「一個成功的 Git 分支模型」的文章,Git-flow 變得廣為人知。

在過去的十年里,無數團隊被這篇博文蒙在鼓里。但我敢說,這篇文章撒謊了。

如果你讀過這篇博文,你就會注意到,盡管作者聲稱他們在項目中成功使用了 Git-flow,但卻故意避開了讓項目成功的細節。

很多人會相信看到的博文,這其實是錯誤的。并非所有的策略都適用于所有情況,這是一個真理。我將同樣的邏輯應用于這個分支模型。

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

Git-flow 的界面很復雜

Git-flow 特別復雜,甚至在考慮微服務或連續交付之前就已經如此了。下面的圖片直觀地展示了這一點:

Git Flow應該拋棄的原因

圖片來源:https://nvie.com/posts/a-successful-git-branching-model/

這里有特性分支、發布分支、master 分支、dev 分支、一個緊急修復分支和 git 標記。這些都是在構建和發布過程中必須跟蹤、理解和考慮的事情。

更重要的是,你還需要隨時跟蹤每個分支,這造成了很高的認知負荷。我已經使用 git 10 年了,我甚至不確定自己是否能在精神上跟上這里的發展。

Git-flow 違反了「短命」分支規則

在 git 中,隨著在某個分支上工作人數的增加,發生合并沖突的次數將大大增加。在 Git-flow 中,這個數字增加得更多,因為還有三個具有不同生命周期的其他分支合并到開發中:特性分支、發布分支和緊急修復。合并沖突發生的可能性并不是線性變化的,它可能會使合并沖突的概率增加三倍。

這太糟糕了。

雖然我不敢說不采用 Git-flow 這樣的分支策略就可以避免合并沖突,但是當所有這些分支組合在一起時,引入的潛在復雜性太大了,無法忽略。如果你們公司的代碼提交速度很慢,那就沒關系。但是對于任何快速迭代的組織或初創企業來說,情況并非如此。

Git-flow 放棄了rebase

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

Git-flow 使連續交付變得不可能

持續交付是一種實踐。在這種實踐中,團隊以自動化的方式直接發布到生產中(實際上是合并到 master)。看看混亂的 Git-flow,你能解釋一下如何持續地交付嗎?

整個分支模型是根據可預測的、長期的發布周期進行預測的。如果每隔幾分鐘或幾小時發布一次新代碼,開銷就太大了,更不用說 CD 的中心實踐之一是向前滾動修復。Git-flow將修補程序視為一個單獨的實體,需要小心地控制,并與其他工作分離開來。

在多個存儲庫中不可能使用 Git-flow

隨著微服務的出現,micro-repo 的理念也得到了更多的推動,各個團隊可以控制他們的存儲庫和工作流,他們還可以控制誰進入了他們的存儲庫以及其工作流是如何工作的。

你有沒有嘗試過這樣一個復雜的分支模型:它有多個團隊,并且希望它們都在同一個頁面上?這是不會發生的。很快,這個系統就變成了不同 repo 的不同版本的一個清單,只有敲出 YAML 來更新清單的人知道所有東西在哪里。如果你不夠細心,「在生產什么」就變成了一個存在主義的問題。

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

因此,如果由于協調發布的困難而取消了 micro-repo,那為什么不讓所有微服務團隊都遵守一個大的發布分支工作流呢?

這個過程大約持續 3.2 秒。如果團隊是獨立的,micro-repo 應該是獨立部署的,這樣就不能很好地將你的工作流程與你在 mono repo 中創建的集中式分支模型聯系起來。

誰應該/不應該使用 Git-flow?

如果你的團隊每月或每季度發布一次,并且是一個并行處理多個發布的團隊,那么 Git-flow 可能是一個不錯的選擇。如果你的團隊是一個初創企業,或者是一個面向 internet 的網站或 web 應用程序,同一天可能發布多個版本,那 Git-flow 對你來說就不合適了。如果你的團隊是一個不到 10 人的微型團隊,Git-flow 會給你的工作帶來太多的規矩和開銷。

另一方面,如果你的團隊有 20 多人進行并行發布,那么 Gitflow 可以確保不會把事情搞砸。

如果不應該使用 Git-flow,那應該用什么?

我不能回答。并非所有分支模型都適用于所有團隊和所有情況。如果你練習 CD,你需要一些盡可能簡化過程的東西。

關鍵在于,團隊需要反思:這個分支模型將幫助我們解決哪些問題?會產生什么問題?這種模型將鼓勵什么樣的發展?我們想鼓勵這種行為嗎?使用分支模型的最終目的都是方便軟件開發過程中的合作,因此,需要考慮使用它的特定人群的需求,而不是互聯網流傳的「成功」的東西。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Git
    Git
    +關注

    關注

    0

    文章

    207

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    從 GPIO 引腳分配的描述中發現引腳 1 應該是 3.3v,但我通過萬用表只能得到 0.75v,原因是什么?

    我們從 GPIO 引腳分配的描述中發現引腳 1 應該是 3.3v,但我通過萬用表只能得到 0.75v,原因是什么?
    發表于 02-03 07:37

    嵌入式開發繞不開的版本管理工具——git

    Git是一個開源的分布式版本控制系統,由Linux之父Linus Torvalds于2005年用C語言開發,主要是為了幫助管理Linux內核開發而創建的一個開放源碼的版本控制軟件。Git與常用的版本
    的頭像 發表于 01-30 16:47 ?1325次閱讀

    驅動650V CoolGaN? GIT G5用于電機控制應用:IFX SOI EiceDRIVER?驅動器的探索

    驅動650V CoolGaN? GIT G5用于電機控制應用:IFX SOI EiceDRIVER?驅動器的探索 在電機控制應用領域,如何高效、安全地驅動功率開關器件是工程師們關注的重點。今天,我們
    的頭像 發表于 12-18 11:50 ?661次閱讀

    案例4:傳導騷擾測試中應該注意的接地環路

    案例4:傳導騷擾測試中應該注意的接地環路【現象描述】某信息技術設備有外接信號電纜及供電電源線。電源口傳導測試時,EUT接地線就近接參考接地板,測試配置圖如圖2.24所示,測試結果如圖2.25所示。由
    的頭像 發表于 11-21 14:43 ?509次閱讀
    案例4:傳導騷擾測試中<b class='flag-5'>應該</b>注意的接地環路

    電壓暫降的原因有哪些?

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

    ubuntu 22.04 執行pkgs--update 失敗的原因

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

    【潤開鴻HH-SCDAYU800A開發板試用體驗】+系統編譯

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

    FLOW Digital Infrastructure宣布在東京市中心新建數據中心

    平臺FLOW Digital Infrastructure(簡稱"FLOW")宣布,其位于東京市中心的新數據中心已開工建設。該新數據中心由兩棟建筑組成,分別命名為TK7和TK8,總IT負載達30MW。首
    的頭像 發表于 07-31 17:31 ?674次閱讀

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

    RADI-FLOW-FHIGH-MSSC-Rev Pwr–Direction(R default)隔離器是高性能單向微波傳輸器件,基于鐵氧體旋磁材料非互易特性設計,專為優化信號傳輸穩定性、保護敏感
    發表于 07-24 08:49

    電機燒壞原因及處理

    電機燒壞的原因多種多樣,涉及電氣故障和機械原因等多個方面。以下是對電機燒壞原因的詳細分析以及相應的處理措施: 一、電機燒壞原因 1. 缺相運行: ● 電機正常運行時三相負載為對稱負載,
    的頭像 發表于 06-22 22:24 ?5839次閱讀
    電機燒壞<b class='flag-5'>原因</b>及處理

    Git vs Perforce P4:版本控制系統選型指南(附適用場景、團隊類型)

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

    STM32N6570-DK自帶的攝像頭運行自帶的AI demo,畫質特別差,這是應該這個例程的原因,還是攝像頭不行?

    STM32N6570-DK自帶的攝像頭運行自帶的AI demo,畫質特別差,這是應該這個例程的原因,還是攝像頭不行?
    發表于 06-18 07:18

    STM32N6570-DK自帶的攝像頭運行自帶的AI demo,畫質特別差,這是應該這個例程的原因,還是攝像頭不行?

    STM32N6570-DK自帶的攝像頭運行自帶的AI demo,畫質特別差,這是應該這個例程的原因,還是攝像頭不行?
    發表于 06-16 06:02

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

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

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

    過大; 想問的是: 1.按此應用場景,單片ADA4522-4消耗電流正常應該是多大?溫度大致應該在多少? 2.ADA4522-4電路及參數設計有問題么?(如下圖) 導致電流過大的原因是什么?是反饋電阻值過小
    發表于 03-24 06:40