小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开发新功能。,小A在我之前把代码提交到了测试分支,我想提交我的新功能代码到测试分支时发现巨多冲突,脑袋瞬间就炸了,Boom一声惊雷响啊。,PS:因为小A的需求不急,但是改动巨大;我的需求很急,马上要提测,否则就延期扣绩效了,说真的,我着急了,哈哈哈。,TIPS:以下代码示例语言为Go,因为是工厂设计模式,我负责的实现类A和他的实现类B虽然没有直接关系。但是因为他修改了工厂类中的方法定义。,比如之前工厂类中的接口是这么定义的,但是小A优化(修改)了工厂类中的接口定义:,这样就导致了一个问题:,我想合并我的代码到测试分支也必须将我的实现类像小A一样,修改传参类型和返回类型。,但是我们都在不同的分支上开发,我是没有他定义的类型ccc.cc,ddd.dd的。,我又不能直接把他定义的ccc.cc,ddd.dd要过来,在我自己的分支上开发,一是因为需求不一致,小A的上线周期会比我长;二是这种操作本身就不规范。,我们想到的方案是合理使用interface,工厂类中方法的入参和出参设置为interface{}类型,这样就比较容易进行扩展了。,方法1的入参和出参设置为interface{}类型的方案,并没有从根本上解决我们的问题。,原因是这样的:,小A的需求是整体优化工厂类和各个实现类的入参、出参,优化内部逻辑,抽取方法。,小A的迭代优化修改变动很大,导致和我实现的新需求有比较大的冲突。,但是他的Git分支又在我之前提交到了测试环境,导致我无法正常提交我的代码。,如果我要提交就要解决各种冲突,解决冲突就要按照小A的优化逻辑去改,提测分支和我自己分支的不一致,难顶啊。,考虑到小A的修改暂时不需要提测,上线周期也比较长。,最终的解决方案是这样的:,这波骚操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家:,1.先重命名本地分支,2.删除远程分支,3.上传新修改名称的本地分支,4.修改后的本地分支关联远程分支,本文转载自微信公众号「 程序员升级打怪之旅」,作者「王中阳Go」,可以通过以下二维码关注。,,转载本文请联系「 程序员升级打怪之旅」公众号。,
文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/20388.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别