代码迁移,合并双仓库

文章目录

  • 前言
  • 一、如何对两个仓库进行合并
  • 二、具体操作步骤
    • 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进行移除
代码迁移,合并双仓库_第1张图片

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

代码迁移,合并双仓库_第2张图片

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

因为考虑到引用问题故从上到下删除,复查service是为了防止不规范的调用,util调用service
代码迁移,合并双仓库_第3张图片

第五步 提交新分支

B分支

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

git remote add A 代码仓库地址

代码迁移,合并双仓库_第4张图片
可能会有部分刷新不出来,通过下方指令就可以了

git fetch A(上方remote的名称)

添加完成之后
代码迁移,合并双仓库_第5张图片

如果idea出现报错

refusing to merge unrelated histories

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

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

合并后操作

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


以上就是今天要讲的内容

你可能感兴趣的:(git,后端,java)