GIT多项目多版本迁移合并操作方案

本文详细介绍了如何将多个独立的GIT项目,如monitor-datasource、monitor-system和monitor-performance,合并到一个新的monitor项目中,同时保持各个分支如monitor_main和monitor_uat的历史记录完整。操作步骤包括创建新工程、添加远程仓库、拉取分支信息、合并代码以及推送至远程仓库。此过程对于服务模块化管理和维护具有重要意义。
摘要由CSDN通过智能技术生成
1、背景

在实际场景中,我们会将服务进行拆分, 也可能需要重构,将多个服务模块进行合并,简化维护。
如何将多个GIT项目统一合并迁移至一个项目, 并且又可以保留历史记录? 下面讲解具体操作步骤。

2、迁移说明

在这里插入图片描述

将原来的三个GIT工程: monitor-datasource、monitor-system和monitor-performance,合并至新工程monitor。同时,需要将原来的多个分支monitor_main和monitor_uat合并迁移,并保留原有的历史commit记录。

3、操作步骤

1、建好合并的新工程

创建好monitor.git工程, 并克隆至本地:

cd test
git clone http://gitlab.local/operation.git 

2、预先创建好需要迁移的各版本

先把要迁移的各版本建立好, 最好从空分支建立,不要留有任何文件;在本地创建好分支即可, 先不用提交至仓库:

git branch monitor_main
git branch monitor_uat

3、添加要合并的GIT工程信息

把要合并的GIT工程模块, 加入进来:

# 进入新工程目录
cd operation
# 添加分支工程地址
git remote add monitor-datasource http://gitlab.local/operation/monitor-datasource.git
git remote add monitor-system http://gitlab.local/operation/monitor-system.git
git remote add monitor-performance http://gitlab.local/operation/monitor-performance.git

4、拉取各分支版本信息

拉取要合并的GIT工程模块的对应分支版本信息:

git fetch monitor-datasource monitor_main
git fetch monitor-system monitor_main
git fetch monitor-performance monitor_main

git fetch monitor-datasource monitor_uat
git fetch monitor-system monitor_uat
git fetch monitor-performance monitor_uat

如果分支版本太多, 可以直接拉取所有

git fetch --all

5、对分支代码进行合并

先合并monitor_main版本代码。

对 monitor-datasource、monitor-system和monitor-performance三个模块依次进行合并操作:

1)合并monitor-datasource工程模块

#合并monitor-datasource工程
git merge -m "merge module" monitor-datasource/monitor_main --allow-unrelated-histories
#创建monitor-datasource目录
mkdir monitor-datasource
#将合并的代码移动至刚创建的monitor-datasource目录
ls -A | grep -wv '.git\|monitor-datasource\|monitor-system\|monitor-performance' | xargs -t -I '{}' git mv {} monitor-datasource/{} 
# 进行代码的添加与提交
git add. && git commit -m "merge init"

2)合并monitor-system工程模块

#合并monitor-system
git merge -m "merge module" monitor-system/monitor_main --allow-unrelated-histories
#创建monitor-system目录
mkdir monitor-datasource
#将合并的代码移动至刚创建的monitor-system目录
ls -A | grep -wv '.git\|monitor-datasource\|monitor-system\|monitor-performance' | xargs -t -I '{}' git mv {} monitor-system/{} 
# 进行代码的添加与提交
git add. && git commit -m "merge init"

3)合并monitor-performance工程模块

#合并monitor-performance
git merge -m "merge module" monitor-performance/monitor_main --allow-unrelated-histories
#创建monitor-performance目录
mkdir monitor-performance
#将合并的代码移动至刚创建的monitor-performance目录(注意这里要排除已经创建的目录)
ls -A | grep -wv '.git\|monitor-datasource\|monitor-system\|monitor-performance' | xargs -t -I '{}' git mv {} monitor-performance/{} 
# 进行代码的添加与提交
git add. && git commit -m "merge init"

注意, 合并完后先不用push提交, 待所有版本都合并完再提交。

6、对其他版本的分支代码进行合并

上面我们预先创建好了不同的版本分支, 这里直接切换至不同的分支

git checkout monitor_uat

再参照第5个步骤,依次对各模块进行合并处理

git merge ...

7、最后, 将提交的信息推送至远程仓库

将创建合并好的各分支版本, 推送至远程仓库:

git push origin monitor_main
git push origin monitor_uat

至此, 就完成了多GIT项目多版本的迁移, 并且可以完整的保留commit历史提交记录。

附:
清理remote远程仓库信息:

git remote remove monitor-datasource 
git remote remove monitor-system 
git remote remove monitor-performance

删除本地的分支:

git branch -D monitor_uat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦神-mirson

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值