代码迁移,合并双仓库

文章目录

  • 前言
  • 一、如何对两个仓库进行合并
  • 二、具体操作步骤
    • A仓库新分支
      • 第一步 移除controller以及接口
      • 第二步 移除service以及实现类impl
      • 第三步 移除dao层(mapper以及xml)
      • 第四步 移除pojo、cache、config、enum以及util等,并复查service
      • 第五步 提交新分支
    • B分支
    • 合并后操作


前言

公司原有A服务,B服务等多个服务,现有以下问题,A服务为公共服务,多个服务均依赖于此,在新版本计划移除A服务,各个服务自己进行承接对应的接口迁移代码。


以下是本篇文章正文内容,下面案例可供参考

一、如何对两个仓库进行合并

两种思路

  1. 挨个接口的文件进行复制,粘贴。适用接口少的情况下,多接口相对麻烦
  2. git的分支进行合并,这里要用到一个项目多个git仓库的方式,适用多接口

二、具体操作步骤

A仓库新分支

第一步 移除controller以及接口

首先我们对新分支做以下操作,B服务前端整理在使用的接口,通过自定义注解进行标记,以下是我自己用的。
其实就是自己随便整一个,标记现有文档,自己记得住是啥就好,方便删除不用的接口或者其他服务或者废弃的接口。移除接口后即可删除

import java.lang.annotation.*;
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCustomAnnotation {
}

第二步 移除service以及实现类impl

移除不需要的接口,对无用的service进行移除

第三步 移除dao层(mapper以及xml)

在这里插入图片描述

第四步 移除pojo、cache、config、enum以及util等,并复查service

因为考虑到引用问题故从上到下删除,复查service是为了防止不规范的调用,util调用service
在这里插入图片描述

第五步 提交新分支

B分支

通过git指令添加A仓库,地址根据自己代码仓库替换

git remote add A 代码仓库地址

在这里插入图片描述
可能会有部分刷新不出来,通过下方指令就可以了

git fetch A(上方remote的名称)

添加完成之后
在这里插入图片描述

如果idea出现报错

refusing to merge unrelated histories

代表拒绝合并不相关的历史记录,通过下方指令进行强制合并

git merge A(上方remote的名称)/分支号 --allow-unrelated-histories

合并后操作

合并相同名称的service,否则bean冲突异常,尤其要注意新引入的类是否与原先就有的,有相同的,并且进行合并目录,同名称的bean,方法合并,同方法考虑是否相同,不相同考虑原有服务是否废弃,都在使用,考虑通过版本号控制。例如新引入为V2版本这种,相同代码过多则考虑兼容。
在这里插入图片描述


以上就是今天要讲的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 基础知识点(蓝桥杯python科目个人复习计划27)

今日复习内容:基础算法中的递归 1.介绍 递归:通过自我调用来解决问题的函数递归通常把一个复杂的大问题层层转化为一个与原问题相似的规模较小的问题来解决 递归要注意:(1)递归出口;(2&#x…

一招搞定msvcr120.dll丢失怎样修复的问题,快速修复msvcr120.dll文件

msvcr120.dll丢失的问题时电脑中常见的几种问题,关于msvcr120.dll丢失的问题都有什么办法可以有效的解决文件丢失的问题,今天我们就来聊聊关于msvcr120.dll丢失怎样修复的方法都有哪些? 一.一招搞定msvcr120.dll丢失问题 为了解决msvcr120.d…

05 SB3之Spring Initializr+运行方式+自动配置原理(TBD)

1. 使用IDEA内置Spring Initializr 生成SB项目 最上方Server URL可以选择借助哪个平台生成, 可选阿里云 作为对比 , 官方可选版本最旧为3.1.18 ; 阿里云可选最新版本为3.0.2 本次选择3.1.8版本, 并且添加Spring Web依赖(包括RESTful / Spring MVC/)和Lombok依赖 生成后端项目…

野火霸道V2学习笔记

STM32F103学习笔记 STM32F103学习笔记说明基础配置配置KeilMDK配置串口下载程序美化Keil界面配置VScode 理论知识STM32命名方式例子 置位与清零GPIOGPIO简介GPIO和引脚的区别引脚的分类 GPIO 框图讲解保护二极管推挽输出推挽输出的含义推挽输出的原理推挽输出的特点推挽输出的应…

TCO AF488,AF488 反式环辛烯,可以用于各种生物实验中,如免疫荧光染色、细胞追踪、核酸检测等

AF488 TCO,Alexa Fluor TCO,TCO AF488,AF488 反式环辛烯,可以用于各种生物实验中,如免疫荧光染色、细胞追踪、核酸检测等 您好,欢迎来到新研之家 文章关键词:AF488 TCO,Alexa Fluo…

如何使用Docker部署火狐浏览器并实现无公网ip远程访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

vulnhub靶场之EMPIRE:BREAKOUT

一.环境搭建 1.靶场描述 Description Back to the Top Difficulty: Easy This box was created to be an Easy box, but it can be Medium if you get lost. For hints discord Server ( https://discord.gg/7asvAhCEhe ) 2.靶场地址 https://www.vulnhub.com/entry/empire-…

备战蓝桥杯---数据结构与STL应用(入门1)

话不多说,直接看题: 下面为分析:显然,我们要先合并最小的两堆(因为他们在后边也得被计算,换句话,我们独立的看,某一堆的体力值为他自己重量*从现在到最后的次数) 因此&a…

Ubuntu 22.04安装Nginx负载均衡

君衍. 一、编译安装Nginx二、轮询算法实现负载均衡三、加权轮询算法实现负载均衡四、ip_hash实现负载均衡 一、编译安装Nginx 这里我们先将环境准备好,我使用的是Ubuntu22.04操作系统: 这个是我刚安装好的,所以首先我们进行保存快照防止安装…

为什么说linux操作系统要比windows稳定?

为什么说linux操作系统要比windows稳定? 在开始前我分享下我的经历,刚入行时遇到一个好公司和师父,给了我机会,两年时间从3k薪资涨到18k的, 我师父给了一些linux学习方法和资料,让我不断提升自己&#xff…

【机器学习】欠拟合与过拟合

过拟合:模型在训练数据上表现良好对不可见数据的泛化能力差。 欠拟合:模型在训练数据和不可见数据上泛化能力都很差。 欠拟合常见解决办法: (1)增加新特征,可以考虑加入特征组合、高次特征,以…

Qt Design Studio+Pyside项目

Qt Design Studio设计出的项目结构有多个层级的目录,我们直接用类似Qt Creator工具的方式加载main.qml文件时会报错提示module "content" is not installed,将content加入importPath后还是报同样的错误。 Qt Design Studio生成的文件包含了.qm…

【Docker】数据持久化 挂载

Docker的镜像是只读的,但是容器是可写的,我们可以将数据写入到容器,不过一旦容器删除数据将会丢 失,那么有什么办法能将数据进行持久化存储呢? ——在宿主机上开辟一块地方,存储内容和docker容器的存储内…

低代码平台:业务开发“加速器”

一、现状 低代码开发平台要让每个人,包括开发者和普通业务人员,都能够成为企业数字化过程中的主导者和构建者!让普通人更容易上手! 基于这一目标,应用需求多的云服务商成为低代码投资的主要来源。一家云服务商如谷歌云…

AJAX的原理(重点)

◆ XMLHttpRequest 什么是XMLHttpRequest? 定义: 关系:axios 内部采用 XMLHttpRequest 与服务器交互 注意:直白点说就是axios内部就是封装了XMLHttpRequest这个对象来实现发送异步请求的 使用 XMLHttpRequest 步骤&#xff1a…

C# 实现 gRPC 服务和调用

写在前面 gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。 主要优点如下: 1.高性能轻量化。 2.协议优先的 API 定义模式,默认使用协议缓冲区,允许与语言无关的实现。 3.可用于多种语言的工具,以生成强类型服务器和客户…

项目解决方案:市小区高清视频监控平台联网整合设计方案(上)

目 录 一、项目需求 1.1业务需求 1.2技术需求 1.3 环境要求 1.3.1 硬件要求 1.3.2 技术服务要求 二、系统设计方案 2.1 视频监控平台基础功能设计 2.2 视频资源及联网设备编码与管理设计 2.2.1 全省现有联网视频资源属性 2.2.2 视频资源编码具体格…

Spring IoC容器(一)

IoC,Inversion of Control 控制反转,是一个过程。仅通过构造函数、工厂方法或在对象实例化后在对象实例上设置属性来定义其依赖关系。容器负责这些工作,这个过程从本质上来说是bean本身的反向,因此称为反向控制。 1 容器 负责实例化、配置及…

C语言入门(二)、每日Linux(三)——gcc命令,通过gcc命令熟悉C语言程序实现的过程

使用gcc编译C语言程序 C语言程序实现的过程gcc命令基础用法常用选项编译和汇编选项:优化选项:调试选项:链接选项:警告选项: 实验对于-o选项 通过gcc命令熟悉C语言程序的执行过程1.预处理2.编译阶段3.汇编阶段4.链接阶段…

Java 面试题之 IO(二)

字符流 文章目录 字符流Reader(字符输入流)Writer(字符输出流) 文章来自Java Guide 用于学习如有侵权,立即删除 不管是文件读写还是网络发送接收,信息的最小存储单元都是字节。 那为什么 I/O 流操作要分为字…