色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    198

    瀏覽量

    15755
收藏 人收藏

    評論

    相關推薦

    歐美車企集體“拋棄”電動汽車,“不玩了”?

    電子發燒友網報道(文/梁浩斌)最近不少博主聲稱“歐美車企集體拋棄電動汽車,只剩中國車企在堅持”,甚至還有博主表示“蘋果、奔馳、寶馬都不玩電動汽車了,西方集體宣布退出,獨剩中國怎么玩?”。
    的頭像 發表于 03-11 00:13 ?6247次閱讀

    U50的AMD Vivado Design Tool flow設置

    AMD Alveo 加速卡使用有兩種流程,AMD Vitis Software Platform flow 和 AMD Vivado Design Tool flow。比較常見的是 Vitis
    的頭像 發表于 11-13 10:14 ?178次閱讀
    U50的AMD Vivado Design Tool <b class='flag-5'>flow</b>設置

    請問TAS5754m在使用ROM flow時,I2S可以支持到96KHz嗎?

    請問TAS5754m在使用ROM flow時,I2S可以支持到96KHz嗎?
    發表于 10-22 08:28

    ESP_RTOS_SDK git select返回-1,errno卻是0,為什么?

    我使用的是ESP_RTOS_SDK git上170316的版本 在多次操作TCP時,偶爾select會返回-1,但得到的errno是0,同時select無法做到讓出cpu 這是什么原因呢?是不是
    發表于 07-11 08:23

    ESP8266 ESP_IDF編譯時出現警告的原因

    /windows-setup.html 編譯時出現下面這些警告,是什么原因,是否影響正常的編譯? 可否屏蔽??? fatal: 不是一個 git 倉庫(或者任何父目錄):.git WARNING: Toolchain
    發表于 07-09 07:42

    ubuntu下的vscode插件安裝idf時,總是找不到git,為什么?

    總是提示:Git is not found in current environment 但是我已經在setting.json下設置了\"git.path\": \"/bin/git\" 同行,命令行里查看
    發表于 06-21 07:16

    通過git命令獲取ESP8266_RTOS_SDK失敗如何解決?

    本人使用的硬件平臺為esp8266,開發環境為ubuntu22.04。在通過git命令獲取ESP8266_RTOS_SDK失敗,通過上網搜索嘗試了很多方法無效。具體情況如下
    發表于 06-07 07:26

    請問下使用IDF怎么做用git做版本控制?

    請問下使用IDF怎么做用git做版本控制?是保存自己應用部分的代碼還是整個SDK都要保存,但是整個框架都是官方下的,有沒必要保存,求各位大神告知下你們怎么處理的。
    發表于 06-06 07:15

    Git發布新版本 修補五處安全漏洞 包含嚴重遠程代碼執行風險

    CVE-2024-32002漏洞的嚴重性在于,黑客可通過創建特定的Git倉庫子模塊,誘騙Git將文件寫入.git/目錄,而非子模塊的工作樹。如此一來,攻擊者便能在克隆過程中植入惡意腳本,用戶幾乎無法察覺。
    的頭像 發表于 05-31 10:09 ?587次閱讀

    字節跳動加速AI布局,Flow部門吸引百度阿里人才

    去年11月,字節跳動宣布成立新部門Flow,專注于AI大模型應用層的研發。該部門隸屬于字節跳動產品研發與工程部(PDI),目前下設四大業務線,包括AI教育、國際化、社區和豆包,旨在通過創新技術,推動AI在多個領域的應用與發展。
    的頭像 發表于 03-26 11:46 ?883次閱讀

    飛凌ElfBoard ELF 1板卡-ubuntu18.04 git安裝及基本使用

    1.安裝gitsudo apt-get install git 2.git初始化git init 3.設置用戶名和郵箱git config --global user.name \"你
    發表于 03-21 16:23

    藍牙 | 軟件:Git管理高通的ChipCode項目

    最近發現大家在高通chipcode網站上下載不了代碼,小編一直使用git的方式獲取新版本代碼,沒有遇到什么阻礙。于是小編到新主機上嘗試下載代碼的壓縮包和git代碼,都遇到了問題。由于壓縮包是高通自己
    的頭像 發表于 01-26 08:29 ?384次閱讀
    藍牙 | 軟件:<b class='flag-5'>Git</b>管理高通的ChipCode項目

    克服PLC編程的難題—基于Git的軟件

    Git是一種分布式版本控制系統,它可以記錄文件的修改歷史和版本變化,并可以支持多人協同開發。
    的頭像 發表于 01-22 09:30 ?956次閱讀
    克服PLC編程的難題—基于<b class='flag-5'>Git</b>的軟件

    Git開發者關注內存安全問題,探討引入Rust語言

    根據最新披露的郵件討論,Git開發團隊熱議在Git項目中引入Rust的可行性。作為一種開源的分布式代碼版本管理工具,廣泛運用于各種開發項目。盡管現在Git項目主要以C與Python為主要開發語言,但探討顯示,引入Rust能顯著降
    的頭像 發表于 01-15 14:23 ?615次閱讀
    <b class='flag-5'>Git</b>開發者關注內存安全問題,探討引入Rust語言

    SOLIDWORKS 2024 Flow Simulation

    SOLIDWORKS? Flow Simulation作為單獨購買的產品提供,您可將其與 SOLIDWORKS Standard、SOLIDWORKS Professional和SOLIDWORKS Premium一起使用。
    的頭像 發表于 01-05 14:30 ?762次閱讀
    SOLIDWORKS 2024 <b class='flag-5'>Flow</b> Simulation
    主站蜘蛛池模板: 人成午夜免费视频| 外女思春台湾三级| 纯肉合集(高H)| 日本午夜精品理论片A级APP发布| 公和我做好爽添厨房中文字幕| 午夜国产在线观看| 美女脱内衣裸身尿口露出来| china中国gay偷拍| 亚洲欧美日韩高清专区| 伦理片免费秋霞e| 国产午夜精品一区二区三区| 亚洲视频在线免费观看| 欧美亚洲视频在线二区| 空姐厕所啪啪啪| CHINA篮球体育飞机2023| 久久人妻少妇嫩草AV蜜桃35I| 成人精品视频网站| 91popny蜜桃臀| 欧美伊人久久大香线蕉综合69| 精品国产乱码久久久久久夜深人妻| av老司机色爱区综合| 亚洲欧美精品无码大片在线观看| 日韩AV成人无码久久精品老人| 九九热在线视频观看这里只有精品| 99热在线观看| 亚洲看片网站| 羲义嫁密着中出交尾gvg794 | 国产精品成人无码久免费| 四虎视频最新视频在线观看| 摸老师丝袜小内内摸出水| 国产亚洲精品久久精品6| GAY2022空少被体育生暴菊| 亚洲精品成人a| 亚洲日韩欧美国产专区| 王雨纯羞羞| 色多多污污版免费下载安装| 欧美人与禽zoz0性伦交app| 捆绑调教网站| 男gv纯肉免费视频| 久久免费精品视频| 黑丝袜论坛|