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

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

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

Git最佳實踐,什么才是最佳工作流

PLC工控專欄 ? 來源:加密狗破解 ? 作者:加密狗破解 ? 2022-02-21 17:59 ? 次閱讀

很久以前我出過一個 Git 教程,小伙伴們要是還不懂 Git 的用法,可以在公眾號底部菜單中,有一個教程合集,里邊有 Git 教程的索引。

今天我們不聊基本用法,聊一聊 Git 到底應(yīng)該怎么用?我們知道相比于 Svn,Git 最牛的地方在于它的分支,分支很靈活,但是如果缺乏一個使用套路,又會用的亂糟糟的,特別是在團隊協(xié)作中,該怎么玩 Git 分支?

咱們也不發(fā)明什么輪子,也不設(shè)計什么全新流程,本文主要是和大家介紹三種常見的工作流:Git Flow、GitHub Flow 以及 GitLab Flow。介紹完成后,在談?wù)勊筛绲囊恍┦褂皿w驗。

1. Git Flow

先來看 Git Flow。

Git Flow 是最早誕生也是最早被廣泛使用的工作流程。

在 Git Flow 中,有兩個長期存在且不會被刪除的分支:masterdevelop。

在這兩個分支中,master 主要用于對外發(fā)布穩(wěn)定的新版本,該分支時常保持著軟件可以正常運行的狀態(tài),由于要維護這一狀態(tài),所以不允許開發(fā)者直接對 master 分支的代碼進行修改和提交,其他分支的開發(fā)工作進展到可以發(fā)布的程度后,將會與 master 分支進行合并,并且這一合并只在發(fā)版時進行,發(fā)布時將會附加版本編號的 Git 標簽。

develop 則用來存放我們最新開發(fā)的代碼,這個分支是我們開發(fā)過程中代碼中心分支,這個分支也不允許開發(fā)者直接進行修改和提交。程序員要以 develop 分支為起點新建 feature 分支,在 feature 分支中進行新功能的開發(fā)或者代碼的修正,也就是說 develop 分支維系著開發(fā)過程中的最新代碼,以便程序員創(chuàng)建 feature 分支進行自己的工作。

注意 develop 合并的時候,不要使用 fast-farward merge,建議加上 --no-ff 參數(shù),這樣在 master 上就會有合并記錄,關(guān)于這兩個的區(qū)別,大家可以參數(shù)松哥之前的 Git 教程,這里不再贅述。

除了這兩個永久分支,還有三個臨時分支:feature branches、hotfixes 以及 release branches。我們分別來看:

feature branches

這個是特性分支,也叫功能分支,當你需要開發(fā)一個新的功能的時候,可以新建一個 feature-xxx 的分支,在里邊開發(fā)新功能,這也是我們?nèi)粘9ぷ鞯拇蟊緺I,開發(fā)完成后,將之并入 develop 分支中,如下圖:

hotfixes branches

這個分支看名字就是用來修復(fù) BUG 的,當我們的項目上線后,發(fā)現(xiàn)有 BUG 需要修復(fù),那么就從 Master 上拉一個名為 fixbug-xxx 的分支,然后進行 BUG 修復(fù),修復(fù)完成后,再將代碼合并到 Master 和 Develop 兩個分支中,然后刪除 hotfix 分支,如下圖:

release branches

這個是發(fā)版的時候拉的分支,當我們所有的功能做完之后,準備要將代碼合并到 master 的時候,從 develop 上拉一個 release-xxx 分支出來,這個分支一般處理發(fā)版前的一些提交以及客戶體驗之后小 BUG 的修復(fù)(BUG 修復(fù)后也可以將之合并進 develop),不要在這個里邊去開發(fā)功能,在預(yù)發(fā)布結(jié)束后,將該分支合并進 develop 以及 master,然后刪除 release,如下圖:

大概就是這個意思。

松哥工作中用的其實就是類似于 Git Flow 的工作流,為什么說是類似呢?我們項目中主要是保證了 master、develop 以及 release 三個分支,在此基礎(chǔ)之上,其他隨意。

2. GitHub Flow

GitHub Flow 相比于 Git Flow 就要容易很多了,GitHub Flow 也是 GitHub 上使用的工作流程,如果你想?yún)⑴c GitHub 上的某一個開源項目,那么不妨看看 GitHub Flow。

官方給的 GitHub Flow 流程如下:

它的流程是這樣的:

  1. 需要開發(fā)新功能或者修復(fù) BUG 的時候,從 master 上拉一個新的分支下來。
  2. 新的分支開發(fā)完成后,或者說當你遇到困難開發(fā)不下去的時候,都可以發(fā)起一個 pr(Pull Request)。
  3. pr 既提交代碼,也讓其他同事 review 你的代碼,在這個過程中,你可以不斷提交 pr。
  4. 最終你的 pr 被接受,合并進 master。

GitHub 工作流雖然用著很簡單,但是他的問題也很明顯,就是沒有對常見的工作場景中的問題提出解決辦法。

3. GitLab Flow

GitLab Flow 結(jié)合了 Git Flow 與 GitHub Flow 的優(yōu)點,它不像 Git Flow 有那么多容易把新手繞暈的分支,同時它又可以適應(yīng)不同的開發(fā)環(huán)境。

GitLab Flow 的最大原則叫做 upstream first,中文譯作“上游優(yōu)先”:即只存在一個主分支 master,它是所有其他分支的 upstream,只有上游分支采納的代碼變化,才能應(yīng)用到其他分支。

對于“持續(xù)發(fā)布”的項目,我們可以在 master 分支以外,再建立不同的環(huán)境分支。例如開發(fā)的分支是 master,預(yù)發(fā)布的分支是 pre-production,生產(chǎn)環(huán)境的分支是 production。

在這里開發(fā)分支是預(yù)發(fā)分支的 upstream,預(yù)發(fā)分支又是生產(chǎn)分支的 upstream。代碼的變化,必須由上游下游發(fā)展。比如,生產(chǎn)環(huán)境出現(xiàn)了 bug,這時就要新建一個功能分支,先把它合并到 master,確認沒有問題,再 cherry-pick 到 pre-production,這一步也沒有問題,才進入 production,如下圖:

只有緊急情況,才允許跳過上游,直接合并到下游分支。

有穩(wěn)定的版本需要發(fā)布時,我們就從 master 上拉一個新的分支出來,作為發(fā)版時候的分支,這些分支上不要開發(fā)新功能,只有修補 BUG 的時候

對于”版本發(fā)布”的項目,建議的做法是每一個穩(wěn)定版本,都要從master分支拉出一個分支,比如2-3-stable、2-4-stable等等。

以后,只有修補bug,才允許將代碼合并到這些分支,并且此時要更新小版本號即可。

4. 小結(jié)

好啦這就是常見的三個 Git 玩轉(zhuǎn)流程,其實我們自己開發(fā)不必這么死板,結(jié)合自己的項目來就行了,松哥的項目,master、develop 以及 release 三個分支是固定的,這三個分支的作用跟前面介紹的 Git Flow 也是一致的,在此基礎(chǔ)之上,其他的基本上沒有太多限制,比較自由。

審核編輯:符乾江

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

    關(guān)注

    6026

    文章

    44456

    瀏覽量

    631000
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    195

    瀏覽量

    15712
收藏 人收藏

    評論

    相關(guān)推薦

    邊緣計算架構(gòu)設(shè)計最佳實踐

    邊緣計算架構(gòu)設(shè)計最佳實踐涉及多個方面,以下是一些關(guān)鍵要素和最佳實踐建議: 一、核心組件與架構(gòu)設(shè)計 邊緣設(shè)備與網(wǎng)關(guān) 邊緣設(shè)備 :包括各種嵌入式設(shè)備、傳感器、智能手機、智能攝像頭等,負責采
    的頭像 發(fā)表于 10-24 14:17 ?135次閱讀

    云計算平臺的最佳實踐

    云計算平臺的最佳實踐涉及多個方面,以確保高效、安全、可擴展和成本優(yōu)化的云環(huán)境。以下是一些關(guān)鍵的最佳實踐: 一、云成本優(yōu)化 詳細分析云使用情況 :通過細致的監(jiān)控和分析,識別低ROI(投資
    的頭像 發(fā)表于 10-24 09:17 ?142次閱讀

    TMCS110x 布局挑戰(zhàn)和最佳實踐

    電子發(fā)燒友網(wǎng)站提供《TMCS110x 布局挑戰(zhàn)和最佳實踐.pdf》資料免費下載
    發(fā)表于 09-12 09:23 ?0次下載
    TMCS110x 布局挑戰(zhàn)和<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>

    衰減 AMC3301 系列輻射發(fā)射 EMI 的最佳實踐

    電子發(fā)燒友網(wǎng)站提供《衰減 AMC3301 系列輻射發(fā)射 EMI 的最佳實踐.pdf》資料免費下載
    發(fā)表于 09-11 09:59 ?0次下載
    衰減 AMC3301 系列輻射發(fā)射 EMI 的<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>

    毫米波雷達器件的放置和角度最佳實踐應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《毫米波雷達器件的放置和角度最佳實踐應(yīng)用.pdf》資料免費下載
    發(fā)表于 09-09 09:57 ?0次下載
    毫米波雷達器件的放置和角度<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>應(yīng)用

    電機驅(qū)動器電路板布局的最佳實踐

    電子發(fā)燒友網(wǎng)站提供《電機驅(qū)動器電路板布局的最佳實踐.pdf》資料免費下載
    發(fā)表于 09-05 11:33 ?9次下載
    電機驅(qū)動器電路板布局的<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>

    MSP430 FRAM技術(shù)–使用方法和最佳實踐

    電子發(fā)燒友網(wǎng)站提供《MSP430 FRAM技術(shù)–使用方法和最佳實踐.pdf》資料免費下載
    發(fā)表于 08-23 09:23 ?0次下載
    MSP430 FRAM技術(shù)–使用方法和<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>

    RTOS開發(fā)最佳實踐

    基于RTOS編寫應(yīng)用程序時,有一些要注意事項。在本節(jié)中,您將學(xué)習RTOS開發(fā)最佳實踐,例如POSIX合規(guī)性、安全性和功能安全認證。
    的頭像 發(fā)表于 08-20 11:24 ?317次閱讀

    行云流水線 滿足你對工作流編排的一切幻想~skr

    的核心組成部分,旨在加速軟件交付、提高質(zhì)量和實現(xiàn)持續(xù)改進。流水線的核心是流水線模型,是實現(xiàn)工作流編排,執(zhí)行的重要基石,一個優(yōu)秀的流水線模型可以覆蓋用戶更多的實踐場景,按照用戶的所思所想支持編排相應(yīng)的工作流程,通過模型的分層設(shè)計,
    的頭像 發(fā)表于 08-05 13:42 ?197次閱讀

    偉創(chuàng)力蘇州斬獲客戶施耐德電氣最佳實踐競賽雙金獎

    在日前結(jié)束的施耐德電氣首屆PCBA制造最佳實踐競賽中,偉創(chuàng)力蘇州團隊以優(yōu)異的表現(xiàn),一舉奪得“工廠金獎”及“最佳生產(chǎn)效率提升單項金獎”。憑借對卓越制造的不懈追求,蘇州團隊目標堅定,雷厲風行,使卓越制造能力再創(chuàng)新高!
    的頭像 發(fā)表于 07-24 17:39 ?626次閱讀

    影響激光焊錫膏的最佳工作溫度和時間的因素?

    多個因素,如焊錫膏的成分、被焊接材料的種類和厚度,以及焊接環(huán)境的條件等。首先,對于大多數(shù)常見的焊錫膏來說,其激光焊錫最佳工作溫度通常在200°C至250°C之間
    的頭像 發(fā)表于 07-23 14:26 ?255次閱讀
    影響激光焊錫膏的<b class='flag-5'>最佳</b><b class='flag-5'>工作</b>溫度和時間的因素?

    熱烈恭賀|開盛暉騰入圍APEC?ESCI最佳實踐獎候選

    機制下成立的能源國際合作實體,也是ESCI最佳實踐獎項目征集的唯一官方通道。 ESCI最佳實踐獎作為APEC能源工作組下設(shè)唯一的項目獎,包括
    的頭像 發(fā)表于 04-29 17:31 ?344次閱讀
    熱烈恭賀|開盛暉騰入圍APEC?ESCI<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>獎候選

    廣東移動攜手華為斬獲“2023年度SDN、NFV、網(wǎng)絡(luò)AI最佳實踐案例”

    4月10日,在北京舉辦的2024年云網(wǎng)智聯(lián)大會上,廣東移動攜手華為共同申報的《基于通信大模型的IP網(wǎng)絡(luò)運維“數(shù)字專家”創(chuàng)新實踐》項目,斬獲SNAI“2023年度SDN、NFV、網(wǎng)絡(luò)AI最佳實踐案例”。
    的頭像 發(fā)表于 04-11 09:03 ?518次閱讀
    廣東移動攜手華為斬獲“2023年度SDN、NFV、網(wǎng)絡(luò)AI<b class='flag-5'>最佳</b><b class='flag-5'>實踐</b>案例”

    主機服務(wù)器選擇:關(guān)鍵因素與最佳實踐

    在數(shù)字化時代,主機服務(wù)器的選擇對于任何企業(yè)都是至關(guān)重要的。無論是大型公司還是初創(chuàng)企業(yè),都需要一個穩(wěn)定、高效且安全的服務(wù)器來支持其業(yè)務(wù)運行。然而,面對市場上眾多品牌和型號的服務(wù)器,如何選擇最適合自己需求的主機服務(wù)器呢?本文將為您詳細介紹主機服務(wù)器選擇的關(guān)鍵因素和最佳實踐。
    的頭像 發(fā)表于 11-21 10:55 ?376次閱讀

    SAP半導(dǎo)體及光伏行業(yè)最佳業(yè)務(wù)實踐

    電子發(fā)燒友網(wǎng)站提供《SAP半導(dǎo)體及光伏行業(yè)最佳業(yè)務(wù)實踐.ppt》資料免費下載
    發(fā)表于 11-02 14:32 ?0次下載
    SAP半導(dǎo)體及光伏行業(yè)<b class='flag-5'>最佳</b>業(yè)務(wù)<b class='flag-5'>實踐</b>