Git 重命名远程分支 – 操作不规范,亲人两行泪

TIPS:以下代码示例语言为Go

问题描述

小A和我并行开发,他在优化之前的代码逻辑,我在开发新功能。

小A在我之前把代码提交到了测试分支,我想提交我的新功能代码到测试分支时发现巨多冲突。

首先解决冲突浪费时间,我的新功能代码每次提测都需要解决冲突。

再者我再测试分支解决冲突,只能按照小A优化后的代码逻辑的去解决,和我自己的分支逻辑并不一致。

交付给测试同学测的代码,和我自己分支的代码不一致,这种测试是没有意义的。

反思出问题的原因

  • 工厂模式使用的不合理
  • 任务分配的不合理
  • 代码层面

    因为是工厂设计模式,我负责的实现类A和他的实现类B虽然没有直接关系。但是因为他修改了工厂类中的方法定义。

    比如之前工厂类中的接口是这么定义的

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

    但是小A修改了工厂类中的接口定义:

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

    这样就导致了一个问题:

    我想合并我的代码到测试分支也必须将我的实现类A修改传参类型和返回类型。

    但是我们都在不同的分支上开发,我是没有他定义的类型ccc.cc,ddd.dd的。

    我又不能直接把他定义的ccc.cc,ddd.dd要过来,在我自己的分支上开发,一是因为需求不一致,小A的上线周期会比我长,二是这种操作本身就不规范。

    解决问题

    从代码设计上优化:

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

    把工厂类中要实现的接口方法的入参和出参设置为interface{}类型

    package factorytype xxx interface { GetXxxx(ctx context.Context, req interface{}) (res interface{}, err error) }复制代码

    这样就比较容易进行扩展了。

    从git操作上优化:

    但是入参和出参设置为interface{}类型的办法并没有从根本上解决我们的问题。

    原因是这样的:

    小A的需求是整体优化工厂类和各个实现类的入参、出参,优化内部逻辑,抽取方法。

    小A的修改导致和我的实现逻辑有比较大的冲突。

    但是他的git提交又在我之前提交到了测试环境,导致我无法提交我的代码,如果要提交就要解决各种冲突。解决冲突就要按照小A的优化逻辑去改,给到测试同学测的有和我自己分支的不一致。

    难顶啊。

    考虑到小A的修改暂时不需要提测,上线周期也比较长。

    最终的办法是这样的:

    从远程的测试分支拉取了一个备份分支

    删除远程的测试分支

    把我本地需要测试的分支提交到测试分支,交付测试。

    git 重命名远程分支

    1.先重命名本地分支

    git branch -m 旧分支名称 新分支名称复制代码

    2.删除远程分支

    git push –delete origin 旧分支名称复制代码

    3.上传新修改名称的本地分支

    git push origin 新分支名称复制代码

    4.修改后的本地分支关联远程分支

    git branch –set-upstream-to origin/新分支名称复制代码

    总结

    开发起来一时爽,维护起来火葬场。

    操作不规范,亲人两行泪。

    作者:王中阳Go链接:https://juejin.cn/post/7104258964732575775

    郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
    用户投稿
    上一篇 2022年7月3日 15:10
    下一篇 2022年7月3日 15:10

    相关推荐

    • 淘宝工厂店的东西是正品吗?淘宝工厂店为什么便宜

      淘工厂直营店其实就是链接淘宝卖家与工厂的平台,直接对接工厂型的商家,店铺里的东西大部分价格都会很低。那么,淘工厂直营店靠谱吗? 淘工厂直营店是靠谱的,但售后问题可能得不到很好的保障…

      2022年11月27日
    • 部落冲突5本阵型(部落冲突5本阵型链接复制2023)

      本文主要讲的是部落冲突5本阵型,以及和部落冲突5本阵型链接复制2021相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 《部落冲突》五本阵型是什么? 《部落冲突》五…

      2022年11月27日
    • 《宝可梦朱紫》奇鲁莉安怎么进化?奇鲁莉安进化方法分享

      宝可梦朱紫中的奇鲁莉安要怎么进化呢?很多玩家都不知道,下面就给大家带来宝可梦朱紫奇鲁莉安进化方法分享,感兴趣的小伙伴一起来看看吧,希望能帮助到大家。 奇鲁莉安进化方法分享 奇鲁莉安…

      2022年11月25日
    • 淘宝直播开通后带货链接怎么做(淘宝直播需要开通淘宝店铺吗)

      直播带货无论是对于商家来说还是主播收益都是非常可观的,所以不少平台都有直播带货功能,一些小伙伴也想加入淘宝直播,那么淘宝直播开通后带货链接怎么做?下面小编为大家带来淘宝直播开通后带…

      2022年11月24日
    • 1千克等于多少磅

      克,此定义在1958年被美国以及其他英联邦会员国承认换算回来,一千克等于262磅,一磅等于037千克英国在1963年开始,依据度量衡法案的规;1 磅=16 盎司=04536 千克 …

      2022年11月24日
    • 快手限流多久能解除(快手限流什么意思)

      我相信很多人都看中了快手平台的商机,都争先恐后地想要抢占机会,可一些人刚刚作出一点成绩,就被降权了,自己也不知道什么原因。所以今天就来聊聊快手账号降权操作分享,赶快来看看避免违规!…

      2022年11月23日
    • 宽带测速软件(手机宽带测速软件)

      中国联通用户可登录中国联通网上营业厅,选择宽带宽带服务宽带测速,按页面指导进行测速,测速时建议您直连电脑,如测速结果无法达到签约速率,您可通过中国联通APP,“服务报障在线报障”进…

      2022年11月22日
    • Win11 22H2再出新问题Bug:无法弹出USB设备

      作为Windows 11的首次大更新,在Win11 22H2发布后并没有带来预想的场景,各种问题频现成为了一种常态。 近日有消息称,Win11 22H2存在一个占用冲突Bug,当用…

      2022年11月22日
    • 童装批发一手货源在哪里(童装批发一手货源在哪里)

      童装货源批发网上也是咨询不断,大家对今年的童装货源进货渠道都十分关注,尤其是一手货源的价格最为便宜了。那么,童装批发一手货源在哪里?现在童装货源批发在哪里拿货最便宜呢?今天极客号小…

      2022年11月21日
    • 童装批发哪里最便宜还质量好啊(最便宜的童装批发基地)

      随着三胎政策的开放,现在各地的童装市场也都超级火爆的,每年都有不少新手商家咨询关于童装货源批发。那么,童装批发哪里最便宜还质量好啊?童装一般都是在哪里批发进货的?今天小编整理了几个…

      2022年11月21日

    联系我们

    联系邮箱:admin#wlmqw.com
    工作时间:周一至周五,10:30-18:30,节假日休息