<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Git 分支設(shè)計(jì)規(guī)范

          共 3012字,需瀏覽 7分鐘

           ·

          2020-03-25 23:24

          ? ? ? ? ? ? ? ? ? ? 概述

          這篇文章分享 Git 分支設(shè)計(jì)規(guī)范,目的是提供給研發(fā)人員做參考。

          規(guī)范是死的,人是活的,希望自己定的規(guī)范,不要被打臉。

          在說 Git 分支規(guī)范之前,先說下在系統(tǒng)開發(fā)過程中常用的環(huán)境。
          簡稱全稱
          DEVDevelopment environment
          FATFeature Acceptance Test environment
          UATUser Acceptance Test environment
          PROProduction environment


          • DEV 環(huán)境:用于開發(fā)者調(diào)試使用。
          • FAT 環(huán)境:功能驗(yàn)收測試環(huán)境,用于測試環(huán)境下的軟件測試者測試使用。
          • UAT 環(huán)境:用戶驗(yàn)收測試環(huán)境,用于生產(chǎn)環(huán)境下的軟件測試者測試使用。
          • PRO 環(huán)境:就是生產(chǎn)環(huán)境。

          比如,項(xiàng)目域名為:http://www.abc.com,那么相關(guān)環(huán)境的域名可這樣配置:

          • DEV 環(huán)境:本地配置虛擬域名即可

          • FAT 環(huán)境:http://fat.abc.com
          • UAT 環(huán)境:http://uat.abc.com
          • PRO 環(huán)境:http://www.abc.com

          接下來,針對不同的環(huán)境來設(shè)計(jì)分支。

          分支

          分支名稱環(huán)境可訪問
          master主分支PRO
          release預(yù)上線分支UAT
          hotfix緊急修復(fù)分支DEV
          develop測試分支FAT
          feature需求開發(fā)分支DEV

          master 分支

          master 為主分支,用于部署到正式環(huán)境(PRO),一般由 releasehotfix ?分支合并,任何情況下不允許直接在 master 分支上修改代碼。

          release 分支

          release 為預(yù)上線分支,用于部署到預(yù)上線環(huán)境(UAT),始終保持與 master 分支一致,一般由 develophotfix 分支合并,不建議直接在 release 分支上直接修改代碼。

          如果在 release 分支測試出問題,需要回歸驗(yàn)證 develop 分支看否存在此問題。

          hotfix 分支

          hotfix 為緊急修復(fù)分支,命名規(guī)則為 hotfix- 開頭。

          當(dāng)線上出現(xiàn)緊急問題需要馬上修復(fù)時(shí),需要基于 releasemaster 分支創(chuàng)建 hotfix 分支,修復(fù)完成后,再合并到 releasedevelop 分支,一旦修復(fù)上線,便將其刪除。

          develop 分支

          develop 為測試分支,用于部署到測試環(huán)境(FAT),始終保持最新完成以及 bug 修復(fù)后的代碼,可根據(jù)需求大小程度確定是由 feature 分支合并,還是直接在上面開發(fā)。

          一定是滿足測試的代碼才能往上面合并或提交。

          feature 分支

          feature 為需求開發(fā)分支,命名規(guī)則為 feature- 開頭,一旦該需求上線,便將其刪除。

          這么說可能有點(diǎn)不容易理解,接下來舉幾個(gè)開發(fā)場景。

          開發(fā)場景

          新需求加入

          有一個(gè)訂單管理的新需求需要開發(fā),首先要?jiǎng)?chuàng)建一個(gè) feature-order 分支,問題來了,該分支是基于哪個(gè)分支創(chuàng)建?

          如果 存在 未測試完畢的需求,就基于 master 創(chuàng)建。

          如果 不存在 未測試完畢的需求,就基于 develop 創(chuàng)建。

          1. 需求在 feature-order 分支開發(fā)完畢,準(zhǔn)備提測時(shí),要先確定 develop 不存在未測試完畢的需求,這時(shí)研發(fā)人員才能將將代碼合并到 develop (測試環(huán)境)供測試人員測試。

          2. 測試人員在 develop (測試環(huán)境) 測試通過后,研發(fā)人員再將代碼發(fā)布到 release (預(yù)上線環(huán)境)供測試人員測試。

          3. 測試人員在 release (預(yù)上線環(huán)境)測試通過后,研發(fā)人員再將代碼發(fā)布到 master (正式環(huán)境)供測試人員測試。

          4. 測試人員在 master (正式環(huán)境) 測試通過后,研發(fā)人員需要?jiǎng)h除 feature-order 分支。

          普通迭代

          有一個(gè)訂單管理的迭代需求,如果開發(fā)工時(shí) < 1d,直接在 develop 開發(fā),如果開發(fā)工時(shí) > 1d,那就需要?jiǎng)?chuàng)建分支,在分支上開發(fā)。

          開發(fā)后的提測上線流程 與 新需求加入的流程一致。

          修復(fù)測試環(huán)境 Bug

          develop 測試出現(xiàn)了Bug,如果修復(fù)工時(shí) < 2h,直接在 develop 修復(fù),如果修復(fù)工時(shí) > 2h,需要在分支上修復(fù)。

          修復(fù)后的提測上線流程 與 新需求加入的流程一致。

          修改預(yù)上線環(huán)境 Bug

          release 測試出現(xiàn)了Bug,首先要回歸下 develop 分支是否同樣存在這個(gè)問題。

          如果存在,修復(fù)流程 與 修復(fù)測試環(huán)境 Bug流程一致。

          如果不存在,這種可能性比較少,大部分是數(shù)據(jù)兼容問題,環(huán)境配置問題等。

          修改正式環(huán)境 Bug

          master 測試出現(xiàn)了Bug,首先要回歸下 releasedevelop 分支是否同樣存在這個(gè)問題。

          如果存在,修復(fù)流程 與 修復(fù)測試環(huán)境 Bug流程一致。

          如果不存在,這種可能性也比較少,大部分是數(shù)據(jù)兼容問題,環(huán)境配置問題等。

          緊急修復(fù)正式環(huán)境 Bug

          需求在測試環(huán)節(jié)未測試出 Bug,上線運(yùn)行一段時(shí)候后出現(xiàn)了 Bug,需要緊急修復(fù)的。

          我個(gè)人理解緊急修復(fù)的意思是沒時(shí)間驗(yàn)證測試環(huán)境了,但還是建議驗(yàn)證下預(yù)上線環(huán)境。

          • 如果 release 分支存在未測試完畢的需求,就基于 master 創(chuàng)建 hotfix-xxx 分支,修復(fù)完畢后發(fā)布到 master 驗(yàn)證,驗(yàn)證完畢后,將 master 代碼合并到 releasedevelop 分支,同時(shí)刪掉 hotfix-xxx 分支。

          • 如果 release 分支不存在未測試完畢的需求,但 develop 分支存在未測試完畢的需求,就基于 release 創(chuàng)建 hotfix-xxx 分支,修復(fù)完畢后發(fā)布到 release 驗(yàn)證,后面流程與上線流程一致,驗(yàn)證完畢后,將 master 代碼合并到 develop 分支,同時(shí)刪掉 hotfix-xxx 分支。

          • 如果 releasedevelop 分支都不存在未測試完畢的需求, 就直接在 develop 分支上修復(fù)完畢后,發(fā)布到 release 驗(yàn)證,后面流程與上線流程一致。

          并行提測

          在一個(gè)項(xiàng)目中并行開發(fā)了兩個(gè)需求,并行提測,但是上線日期不同。

          我能想到的兩種方案:

          • 再部署一套可供測試人員測試的分支
          • 使用 git cherry-pick “挑揀”提交

          對于并行提測,你有好的方案嗎?歡迎留言。

          Commit 日志規(guī)范

          提交信息一定要認(rèn)真填寫!

          建議參考規(guī)范:(scope):

          比如:fix(首頁模塊):修復(fù)彈窗 JS Bug。

          type 表示 動作類型,可分為:

          • fix:修復(fù) xxx Bug
          • feat:新增 xxx 功能
          • test:調(diào)試 xxx 功能
          • style:變更 xxx 代碼格式或注釋
          • docs:變更 xxx 文檔
          • refactor:重構(gòu) xxx 功能或方法

          scope 表示 影響范圍,可分為:模塊、類庫、方法等。

          subject 表示 簡短描述,最好不要超過 60 個(gè)字,如果有相關(guān) Bug 的 Jira 號,建議在描述中加上。

          小結(jié)

          暫時(shí)就想到這么多,規(guī)范這東西不是一成不變的,供參考。


          推薦閱讀:


          e7b040ad43b8da42817cb18774f0f67e.webp喜歡我可以給我設(shè)為星標(biāo)哦e7b040ad43b8da42817cb18774f0f67e.webp

          5c40f18854512b2cc27788d48280f001.webp

          好文章,我?在看?

          ce04505c5e6513bf3821021242eb074b.webp
          瀏覽 48
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99九九99九九九99九他书对 | 国产色婷婷在线 | 九九午夜 | 日xxxx | 欧美狠狠干|