在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Git 重命名遠(yuǎn)程分支 – 操作不規(guī)范,親人兩行淚

    TIPS:以下代碼示例語言為Go

    問題描述

    小A和我并行開發(fā),他在優(yōu)化之前的代碼邏輯,我在開發(fā)新功能

    小A在我之前把代碼提交到了測試分支,我想提交我的新功能代碼到測試分支時發(fā)現(xiàn)巨多沖突

    首先解決沖突浪費時間,我的新功能代碼每次提測都需要解決沖突。

    再者我再測試分支解決沖突,只能按照小A優(yōu)化后的代碼邏輯的去解決,和我自己的分支邏輯并不一致。

    交付給測試同學(xué)測的代碼,和我自己分支的代碼不一致,這種測試是沒有意義的。

    反思出問題的原因

  • 工廠模式使用的不合理
  • 任務(wù)分配的不合理
  • 代碼層面

    因為是工廠設(shè)計模式,我負(fù)責(zé)的實現(xiàn)類A和他的實現(xiàn)類B雖然沒有直接關(guān)系。但是因為他修改了工廠類中的方法定義。

    比如之前工廠類中的接口是這么定義的

    package factorytype xxx interface { GetXxxx(ctx context.Context, req aaa.aa) (res bbb.bb, err error) }復(fù)制代碼

    但是小A修改了工廠類中的接口定義:

    package factorytype xxx interface { GetXxxx(ctx context.Context, req ccc.cc) (res ddd.dd, err error) }復(fù)制代碼

    這樣就導(dǎo)致了一個問題:

    我想合并我的代碼到測試分支也必須將我的實現(xiàn)類A修改傳參類型和返回類型。

    但是我們都在不同的分支上開發(fā),我是沒有他定義的類型ccc.cc,ddd.dd的。

    我又不能直接把他定義的ccc.cc,ddd.dd要過來,在我自己的分支上開發(fā),一是因為需求不一致,小A的上線周期會比我長,二是這種操作本身就不規(guī)范。

    解決問題

    從代碼設(shè)計上優(yōu)化:

    我們想到的方案是合理使用interface

    把工廠類中要實現(xiàn)的接口方法的入?yún)⒑统鰠⒃O(shè)置為interface{}類型

    package factorytype xxx interface { GetXxxx(ctx context.Context, req interface{}) (res interface{}, err error) }復(fù)制代碼

    這樣就比較容易進(jìn)行擴展了。

    從git操作上優(yōu)化:

    但是入?yún)⒑统鰠⒃O(shè)置為interface{}類型的辦法并沒有從根本上解決我們的問題。

    原因是這樣的:

    小A的需求是整體優(yōu)化工廠類和各個實現(xiàn)類的入?yún)?、出參,?yōu)化內(nèi)部邏輯,抽取方法。

    小A的修改導(dǎo)致和我的實現(xiàn)邏輯有比較大的沖突。

    但是他的git提交又在我之前提交到了測試環(huán)境,導(dǎo)致我無法提交我的代碼,如果要提交就要解決各種沖突。解決沖突就要按照小A的優(yōu)化邏輯去改,給到測試同學(xué)測的有和我自己分支的不一致。

    難頂啊。

    考慮到小A的修改暫時不需要提測,上線周期也比較長。

    最終的辦法是這樣的:

    從遠(yuǎn)程的測試分支拉取了一個備份分支

    刪除遠(yuǎn)程的測試分支

    把我本地需要測試的分支提交到測試分支,交付測試。

    git 重命名遠(yuǎn)程分支

    1.先重命名本地分支

    git branch -m 舊分支名稱 新分支名稱復(fù)制代碼

    2.刪除遠(yuǎn)程分支

    git push –delete origin 舊分支名稱復(fù)制代碼

    3.上傳新修改名稱的本地分支

    git push origin 新分支名稱復(fù)制代碼

    4.修改后的本地分支關(guān)聯(lián)遠(yuǎn)程分支

    git branch –set-upstream-to origin/新分支名稱復(fù)制代碼

    總結(jié)

    開發(fā)起來一時爽,維護(hù)起來火葬場。

    操作不規(guī)范,親人兩行淚。

    作者:王中陽Go鏈接:https://juejin.cn/post/7104258964732575775

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年7月3日 15:10
    下一篇 2022年7月3日 15:10

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息