成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

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

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

在開發(fā)中,不論是一個團隊一起開發(fā)一個項目,還是自己獨立開發(fā)一個項目。都少不了要和git打交道。面對不同的開發(fā)場景,或許每個團隊都有自己的git工作流。這里,我想分享一下我的團隊目前正在使用的基于gitlabgit工作流。一起交流一下。

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

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

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

上面的這些分支呢,就是我們在開發(fā)中需要經(jīng)常去創(chuàng)建并使用的分支。下面詳細說說每個分支代表的意思。

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

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

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

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

注意:這里有個細節(jié)是,在特性分支上開發(fā)提交的commit信息,一般認為是無用信息,會在合并給版本分支的時候給合并到一個commit(由于我們是使用gitlab來合并,所以在發(fā)起mr請求時勾選squash選項就好了),而在提測后不論是修復(fù)測試過程中bug,或者是優(yōu)化功能的commit則會全部保留,這個目的是一個警示,因為我希望最好的情況是提測即上線,雖然達到這個目標有難度,但是這些留下的commit信息可以幫助我們復(fù)盤

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

第一個場景:正常開發(fā)迭代

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

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: 開發(fā)完成 feat-add-button->>feat-add-button: 開發(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: 提測 feat-add-button->>feat-add-button: 修復(fù)測試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ù)制

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

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

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

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

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

第二個場景 線上bug修復(fù)

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

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

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

第三個場景 多版本并行開發(fā)

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

Q&A

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

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

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

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

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

Q: master分支有變動怎么處理

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

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

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久综合给久久狠狠97色| 麻花传媒68XXX在线观看| 久久99精品久久水蜜桃| 久久久久精品无码专区| 门卫老头吮她的花蒂| 欧美XXXXX牲另类人与| 人人妻久久人人澡人人爽人人精品 | 人与各种动ZZZ0O0OⅩⅩX| 少妇婬荡久久久久AV无码| 性生大片免费观看网站| 亚洲色精品88色婷婷七月丁香| 欲香欲色天天天综合和网| 99久久久国产精品免费| 风流少妇又紧又爽又丰满| 国产亚洲AV片在线观看播放| 久久精品国产久精国产果冻传媒| 嫩BBB槡BBBB搡BBBB| 乳欲人妻办公室奶水| 亚洲AV成人无码一区二区在线观看 | 亚洲最大成人一区久久久| 99国内精品久久久久久久漫画| 吃了继兄开的药后我做的梦更长了| 国产精品亚洲综合一区在线观看| 久久96热在精品国产高清| 女人扒开屁股桶爽6O分钟| 舌头伸进去添的我好爽高视频| 亚洲VA中文字幕无码一二三区| 在办公室里揉弄小雪好爽| 成人无码区免费AⅤ片在线观看 | A狠狠久久蜜臀婷色中文网| 高清VIDEOSDESEXO日| 寂寞视频一对一视频APP| 女性C春合欢液高朝液精华液| 少妇无码AV无码一区| 亚洲女人人体ASS| おとまりせくす中文在线| 国产区在线观看成人精品| 麻豆一区区三区四区产品麻豆| 色欲午夜无码久久久久久| 亚洲人成电影在线观看天堂色 | 亚洲一区二区三区无码蜜桃| YSL千人千色T9T9T9T9| 国模无码视频一区| 欧美亚洲国产精品久久高清| 午夜亚洲国产理论片中文飘花| 中国亲子伦孑XXⅩ| 国产成人精品日本亚洲成熟| 久久天天躁狠狠躁夜夜2019| 色综合色狠狠天天综合网| 亚洲一区二区三区无码国产| 豆奶视频在线观看免费高清版| 久久国产中文娱乐网| 日韩精品无码熟人妻视频| 亚洲乱亚洲乱少妇无码| 东北妓女激情普通话对白| 久久久亚洲AV成人网站| 少妇粗大进出白浆嘿嘿视频| 夜夜爽一区二区三区精品| 国产成人精品免高潮在线观看| 乱人伦中文字幕在线| 午夜福利片手机在线播放| A级毛片无码兔费真人久久| 成人片黄网站色多多WWW| 性欧美ⅩXXXX极品少妇| 97人妻人人做人碰人人爽| 国产强被迫伦姧在线观看无码| 男孩子都会夹住女孩子头发| 性饥渴老头XXXXⅩHD| А√天堂中文官网在线BT| 精品一区二区成人精品| 手机在线观看AV片| 2023极品少妇XXXO露脸| 好大好爽舔我高潮了| 日本熟妇色熟妇在线视频播放| 亚洲中字幕日产AV片在线| 国产高清在线观看AV片| 欧美操逼视频网站| 亚洲熟妇AV日韩熟妇在线| 国产精品久久久久7777| 欧美性爱一二三区| 一区二区无码在线视频| 国产午夜成人无码免费看不卡| 日本丰满熟妇BBxBB| 在线精品国精品国产尤物| 国产亚洲精品自在久久| 少妇精品揄拍高潮少妇| BBBBB毛茸茸BBBBBBB| 久久嫩草影院免费看| 亚洲AV无码成H人动漫在线观看| 成人国产精品一区二区网站免费| 美女裸体无遮拦国产兔费网站| 亚洲国产精品久久久天堂不卡海量 | 四季AV一区二区三区免费观看| 99无人区码一码二码三码...| 久久精品99久久久久久蜜芽TV| 小浪货腿张开水好多呀H| 粗一硬一长一进一爽一A级| 欧美精品双插重口在线播放 | А√天堂8资源最新版| 久久中文骚妇内射| 亚洲精品国产AV成拍色拍婷婷| 国产丰满麻豆HDXVIDEOS| 日韩A∨精品日韩在线观看| 18禁无遮挡无码国产免费网站| 久久精品无码AV| 亚洲爆乳无码专区WWW| 国产麻传媒精品国产AV| 双腿扒开调教羞辱惩罚视频| 波多野结衣av无码久久一区| 欧美 日韩 国产 亚洲 色| 在线播放免费人成毛片软件| 精品人妻一区二区三区四区| 性色A∨人人爽网站HD| 国产成人啪精品视频网站午夜| 日韩AV无码成人精品国产| 啊灬用力灬啊灬啊灬啊灬电子书| 女主快穿到各个世界做小三| 中文字幕AV日韩精品一区二区| 久久午夜无码鲁丝片秋霞| 亚洲午夜福利精品久久| 精品亚洲欧美无人区乱码| 亚洲男人的天堂AV手机在线观看| 国产凸凹视频一区二区| 羞羞汗汗YY歪歪漫画AV漫画| 国产免费AV片在线观看麻豆| 无码人妻久久久久一区二区三区91 | 亚洲色18禁成人网站WWW| 精品人妻系列无码专区| 亚洲日韩一区二区三区波多野结衣| 精品国产乱码久久久久APP下载| 亚洲AV无码一区二区三区国产 | 草草影院CCYYCOM| 日韩AV无码社区一区二区三区| 被滋润的娇妻疯狂呻吟| 日韩精品乱码AV一区二区| 东京热无码人妻系列综合网站| 日韩人妻一区二区| 公交车上荫蒂添的好舒服的句子| 色综合色综合色综合色欲| 国产MV高清砖码2022| 无码喷水一区二区浪潮AV| 国产男男GAY做受ⅩXX软件| 亚洲AⅤ中文无码字幕色本草| 国产无遮挡又黄又爽免费吃瓜视频| 小洞饿了想吃大香肠| 皇上捏住宫女的巨峰| 亚洲欧美综合精品AⅤ一区二区| 久久99久久99精品免观看| 一本大道久久东京热无码AV| 乱人伦中文无码视频| AV区无码字幕中文色| 日本无遮挡真人祼交视频| 国产成人无码A在线观看不卡| 无码人妻精品中文字幕不卡| 狠狠躁夜夜躁无码中文字幕| 亚洲无人区一码二码三码区别| 老熟妇BBWASS| 99精品又大又爽又粗少妇毛片| 欧洲女人牲交视频免费| 出轨 无码 论坛| 午夜精品久久久久久久99热| 精品国产一区二区三区麻豆 | 亚洲AV无码久久久久久精品同性 | 亚洲精品第一国产综合麻豆| 麻花豆传媒剧国产MV在线上-| FREEXX性黑人大战欧美| 少洁白妇无删减全文阅读| 国产无遮挡又黄又爽免费网站| 亚洲欧洲成人A∨在线观看| 免费免APP看大片视频播放器| 巴西大肥熟女毛茸茸| 偷拍 拍自 欧美色区| 精品一区二区三区不卡少妇av| 中文有无人妻VS无码人妻激烈 | 性色AV极品无码专区亚洲| 久久久亚洲精品无码| 啊灬啊灬啊灬快灬高潮了听书| 玩弄人妻少妇老师美妇厨房| 久久AV无码AV高潮AV喷吹| 99精产国品一二三产区MBA| 少妇太爽了在线观看免费视频| 黑人异族巨大巨大巨粗| 综合无码一区二区三区| 山东中年夫妇大白天露脸自拍| 果冻传媒AⅤ毛片无码| 中文字幕,久热精品,视频在线| 日日噜噜夜夜狠狠视频| 娇喘潮喷抽搐高潮在线视频| 337P日本欧洲亚洲大胆在线| 手机国产乱子伦精品视频| 久久GOGO国模啪啪人体| WWW夜片内射视频日韩精品成人| 无人区一码二码三码区别在哪| 久久无码中文字幕免费影院蜜桃 | 国产清纯在线一区二区WWW| 一个上添B一个下添| 搡BBBB搡BBB搡五十| 久久精品国产只有精品66| 成人免费午夜无码视频在线播放| 亚洲成人AV免费|