久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      分享一個(gè)git工作流優(yōu)雅的玩法

      在開(kāi)發(fā)中,不論是一個(gè)團(tuán)隊(duì)一起開(kāi)發(fā)一個(gè)項(xiàng)目,還是自己獨(dú)立開(kāi)發(fā)一個(gè)項(xiàng)目。都少不了要和git打交道。面對(duì)不同的開(kāi)發(fā)場(chǎng)景,或許每個(gè)團(tuán)隊(duì)都有自己的git工作流。這里,我想分享一下我的團(tuán)隊(duì)目前正在使用的基于gitlabgit工作流。一起交流一下。

      規(guī)范化的git流程能降低我們的出錯(cuò)概率,也不會(huì)經(jīng)常遇到git問(wèn)題,然后去搜一堆git高階用法。我們的這套git玩法兒,其實(shí)只要會(huì)基本的git操作就行了,然后規(guī)范化操作,基本不會(huì)遇到git問(wèn)題,這樣大家就可以將時(shí)間用于業(yè)務(wù)上。最終,希望大家研究git的時(shí)候是在感興趣的時(shí)候,而不是遇到問(wèn)題,緊急去尋找答案的時(shí)候

      我們的這種git工作流玩兒法呢,主要是分為下面幾個(gè)分支:

      • master分支 最新的穩(wěn)定代碼
      • vx.x.x分支 版本分支,x.x.x是此次開(kāi)發(fā)的版本號(hào)。
      • feat-xxx分支 特性(新的功能)分支
      • fix-xxx分支 修復(fù)分支

      上面的這些分支呢,就是我們?cè)陂_(kāi)發(fā)中需要經(jīng)常去創(chuàng)建并使用的分支。下面詳細(xì)說(shuō)說(shuō)每個(gè)分支代表的意思。

      master分支代表的是最新的穩(wěn)定版本的代碼,一般是版本分支或者修復(fù)分支的代碼上線后合并過(guò)來(lái)的。

      feat-xxx分支表示的是為開(kāi)發(fā)某個(gè)版本的某個(gè)新功能而創(chuàng)建的分支。

      vx.x.x代表的是版本分支,這個(gè)是我們?cè)诿總€(gè)版本開(kāi)始前,以此次版本號(hào)為名從master創(chuàng)建的分支,比如版本號(hào)是 2.0.1,那么版本分支則為 v2.0.1。然后等到該版本的各個(gè)新功能在feat-xxx開(kāi)發(fā)完成并冒煙測(cè)試通過(guò)后,就到gitlab上提一個(gè)mr合并到該版本分支上。等到各個(gè)環(huán)境測(cè)試通過(guò)后,就將版本分支的代碼合并到master上,然后就可以刪除本次的版本分支了。

      fix-xxx表示的是修復(fù)分支,通常在處理線上問(wèn)題時(shí),創(chuàng)建一個(gè)以缺陷名稱命名的分支,在缺陷測(cè)試通過(guò)后,通過(guò)mr合并到master分支去

      注意:這里有個(gè)細(xì)節(jié)是,在特性分支上開(kāi)發(fā)提交的commit信息,一般認(rèn)為是無(wú)用信息,會(huì)在合并給版本分支的時(shí)候給合并到一個(gè)commit(由于我們是使用gitlab來(lái)合并,所以在發(fā)起mr請(qǐng)求時(shí)勾選squash選項(xiàng)就好了),而在提測(cè)后不論是修復(fù)測(cè)試過(guò)程中bug,或者是優(yōu)化功能的commit則會(huì)全部保留,這個(gè)目的是一個(gè)警示,因?yàn)槲蚁M詈玫那闆r是提測(cè)即上線,雖然達(dá)到這個(gè)目標(biāo)有難度,但是這些留下的commit信息可以幫助我們復(fù)盤

      各個(gè)分支的作用如上面所描述的那樣,接著聊聊我們開(kāi)發(fā)的一些經(jīng)典場(chǎng)景該怎么做:

      第一個(gè)場(chǎng)景:正常開(kāi)發(fā)迭代

      我們以本次需要開(kāi)發(fā)一個(gè) 1.0.0版本為例,這個(gè)其中有兩個(gè)功能模塊,一個(gè)是需要添加一個(gè)按鈕,一個(gè)是需要添加一個(gè)表格

      sequenceDiagram master->>v1.0.0: 從master切出 v1.0.0 master->>feat-add-button: 從master切出 feat-add-button master->>feat-add-form: 從master切出 feat-add-button feat-add-form->>feat-add-form: 開(kāi)發(fā)完成 feat-add-button->>feat-add-button: 開(kāi)發(fā)完成 feat-add-button->>v1.0.0: 在gitlab發(fā)起mr到v1.0.0,并合并所有commit feat-add-form->>v1.0.0: 在gitlab發(fā)起mr到v1.0.0,并合并所有commit v1.0.0->>v1.0.0: 提測(cè) feat-add-button->>feat-add-button: 修復(fù)測(cè)試bug feat-add-button->>v1.0.0: 將修復(fù)的 commit cherry pick到 v1.0.0 v1.0.0->>master: 在gitlab上mr到master,并將合并信息改成 v1.0.0
      登錄后復(fù)制

      分享一個(gè)git工作流優(yōu)雅的玩法

      通過(guò)上面的時(shí)序圖,可以看到,我們以我們即將開(kāi)始的版本命名了一個(gè)版本分支 v1.0.0,并且也根據(jù)這個(gè)版本下面的兩個(gè)功能創(chuàng)建了兩個(gè)特性分支 feat-add-buttonfeat-add-form,然后等功能開(kāi)發(fā)完成后再通過(guò)gitlab發(fā)起mr(注意,這里要把合并commit選項(xiàng)勾選上)合并到 v1.0.0,那么 v1.0.0分支的代碼就會(huì)從dev環(huán)境開(kāi)始流轉(zhuǎn),直到生產(chǎn)環(huán)境。這其中,如果有需要修復(fù)或者優(yōu)化的地方,也是先修改特性分支,然后再cherry pick到版本分支上面。上線以后刪除版本分支以及下面的特性分支。

      通過(guò)這個(gè)流程管理的代碼版本非常清晰,這是截取的master的一部分片段

      分享一個(gè)git工作流優(yōu)雅的玩法

      在正常迭代流程還有個(gè)場(chǎng)景。那就是在開(kāi)發(fā)過(guò)程中,pm突然過(guò)來(lái)說(shuō),因?yàn)槟撤N不可抗力,有一個(gè)功能需要砍掉。這個(gè)時(shí)候,如果是代碼還沒(méi)提測(cè),亦或者是功能比較簡(jiǎn)單,處理起來(lái)還不算麻煩。但如果是,你的功能和其他同事的代碼已經(jīng)在測(cè)試了,并且也已經(jīng)修復(fù)了一些bug,commit都交叉在一起,特別是那種涉及修改文件還多的需求,這個(gè)時(shí)候處理起來(lái)就很麻煩,不僅要看著別人的代碼,還得警惕自己的代碼別弄錯(cuò)了。那這個(gè)時(shí)候,在我們流程里就很簡(jiǎn)單,直接刪除現(xiàn)有的版本分支就好了,再重新將需要上線的特性分支組合在一起就可以了??梢钥吹?,版本分支是由特性分支組合起來(lái)的,也就是說(shuō),版本分支可以由不同的特性分支隨意組合。這樣處理起來(lái)就比較方便

      第二個(gè)場(chǎng)景 線上bug修復(fù)

      我們以線上需要修復(fù)一個(gè)按鈕的點(diǎn)擊事件為例

      sequenceDiagram master->>fix-button-click: 從master切出 fix-button-click fix-button-click->>fix-button-click: 修復(fù)問(wèn)題并測(cè)試 fix-button-click->>master: 從gitlab發(fā)起mr合并到master
      登錄后復(fù)制

      其實(shí)這里的流程跟上面沒(méi)多大的區(qū)別,但是這里需要注意的是,線上問(wèn)題修復(fù),一個(gè)bug一個(gè)commit,合并到master的時(shí)候不合并commit。而且需要將合并信息修改為本次的版本號(hào)。比如本次則為 v1.0.1

      第三個(gè)場(chǎng)景 多版本并行開(kāi)發(fā)

      這個(gè)場(chǎng)景跟正常迭代場(chǎng)景并沒(méi)啥區(qū)別,只是取決于你有多個(gè)版本,就創(chuàng)建對(duì)應(yīng)的版本分支就可以了。每個(gè)版本分支按照正常迭代流程就可以了。

      Q&A

      Q:為什么沒(méi)有使用dev、test等對(duì)應(yīng)環(huán)境的分支,這樣也好實(shí)現(xiàn)push既部署

      A:我們這個(gè)流程是放棄了使用這些固定的分支的。有幾個(gè)原因,

      • 代碼提測(cè)后從dev到test,甚至再到uat(預(yù)發(fā)布)環(huán)境,如果在不同的環(huán)境都有代碼的變動(dòng),那么為了保持這些分支代碼一致的話,就需要將代碼同步到各個(gè)環(huán)境分支,這點(diǎn)兒有些費(fèi)事兒。而版本分支不存在這個(gè)問(wèn)題,版本分支只有一個(gè),可以對(duì)應(yīng)到各個(gè)環(huán)境。

      • 方便多版本并行開(kāi)發(fā)。版本分支可以創(chuàng)建多個(gè),并行開(kāi)發(fā)的時(shí)候比較方便部署到不同的測(cè)試環(huán)境。如果版本之間的模塊關(guān)聯(lián)性不大,還可以并行測(cè)試。

      • 語(yǔ)義化。版本分支可以通過(guò)分支名稱就知道目前有哪些分支正在開(kāi)發(fā)中。

      Q: master分支有變動(dòng)怎么處理

      A: master分支有變動(dòng)的話,及時(shí)的合并到自己的功能分支上,以防和其他成員代碼有沖突

      推薦學(xué)習(xí):《Git視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)