文章目录
- 前言
- 一、如何对两个仓库进行合并
- 二、具体操作步骤
- A仓库新分支
- 第一步 移除controller以及接口
- 第二步 移除service以及实现类impl
- 第三步 移除dao层(mapper以及xml)
- 第四步 移除pojo、cache、config、enum以及util等,并复查service
- 第五步 提交新分支
- B分支
- 合并后操作
前言
公司原有A服务,B服务等多个服务,现有以下问题,A服务为公共服务,多个服务均依赖于此,在新版本计划移除A服务,各个服务自己进行承接对应的接口迁移代码。
以下是本篇文章正文内容,下面案例可供参考
一、如何对两个仓库进行合并
两种思路
- 挨个接口的文件进行复制,粘贴。适用接口少的情况下,多接口相对麻烦
- 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版本这种,相同代码过多则考虑兼容。
以上就是今天要讲的内容