使用Intellij Idea和gitlab迁移一个已有git项目为另一个项目的子模块,保留提交记录

需求

  • 原有独立的2个Sping Boot项目,现在随着业务进行,发现很多编码可以共用,想着使用maven子模块的方法,合成一个项目,再把公共代码抽一个公共模块,这2个Sping Boot子模块依赖公共模块
  • 主要是想保留提交记录,所以需要把一个项目带记录迁移过去
  • 百度了一堆,好多说的不清楚,我这次截了些图,一起发一下

过程

  • 要被合并的是项目 data-collenct
  • 要合并到项目 radar-data
  1. 打开Intellij Idea ,在要被合并的项目 data-collect 里,使用 Git - Manage Remotes... 新建一个远程项目分支,用于后面使用 Git - Push...提交到这个远程分支里

Git - Manage Remotes...
2. 也可以直接使用 Git - Push...,提交时输入新的远程分支地址和分支名称, 将本项目远程提交过去。
在这里插入图片描述
3. 注意:上面2步骤说的新的远程分支,就是 radar-data,注意 name 不能使用 origin,我这里使用了master(因为我的radar-data主分支是main,所以不冲突 )
define remote定义远程分支
4. 然后push就行,去gitlab界面里,就可以看到这个新分支和代码了,新的master(我的radar-data主分支是main
git push remote
Git - Push...5. 将新分支下载下来,修改目录结构。因为提交到远程分支时,是把所有代码提交过来,其实和已有项目是同一层级,因为我们迁过来是作为子模块,所以需要在这里外面加一层文件夹为data-collect,方便后面的合并。
注意:我这截图里一开始搞错了,看着上面项目名是data-collect就加了个radar-data文件夹,其实是需要加data-collect文件夹,因为合并时,我们不要最外层的文件夹
git push

  1. 在gitlab界面里操作radar-data项目,创建一个合并请求,将这个新分支master合并到主分支main,应该是没有丝毫冲突的。
    注意:如果前面没有套一层文件夹,直接合并,就会出错了,因为它是作为一个maven子模块

在这里插入图片描述

### 将 IntelliJ IDEA 新建项目推送到 GitLab #### 准备工作 确保已安装配置好 Git 工具,已在 GitLab 注册账号以及创建目标仓库。 #### 初始化本地 Git 仓库 对于全新本地项目,在 IntelliJ IDEA 中打开项目后,需初始化 Git 仓库。这可以通过命令行执行 `git init` 来完成[^1]。之后,为了使该项目能够与远程的 GitLab 仓库关联起来,还需运行如下命令来添加远程仓库地址: ```bash git remote add origin <your-gitlab-repository-url> ``` 此处 `<your-gitlab-repository-url>` 应替换为实际的 GitLab 仓库 URL 地址。 #### 添加文件至暂存区 在准备推送之前,应当把想要上传到服务器上的文件加入到暂存区域。于 IntelliJ IDEA 内部操作的话,则可通过鼠标右键点击项目名称,随后依次选择 **Git -> Add** 菜单项实现此目的[^2];当然也可以直接利用终端输入 `git add .` 命令达成相同效果。 #### 提交更改 当所有待提交的内容都已被成功放入暂存区以后,就可以正式向版本库记录此次改动的信息了——即执行一次 commit 操作。同样可以在 IDE 的图形界面里找到对应的选项进行提交,或者借助 shell 执行下面这条指令: ```bash git commit -m "Initial commit" ``` 这里 `"Initial commit"` 是给这次更新附带的一条简短描述消息。 #### 创建分支与之同步 按照需求可以创建新的分支比如命名为 `aaa` ,这一过程可在IDEA中通过 VCS (Version Control System) 功能模块下的 Branches... 子菜单里的 New Branch... 完成设置。接着务必记得切换当前工作的上下文环境至此新建立好的分支之上以便后续动作得以顺利开展。 #### 推送至远端 最后一步就是将本地所做的全部变更发送回云端存储位置去了。仍旧有两种途径可供选取:一种是在 GUI 界面下寻找 Push... 按钮按下即可启动传输流程;一种则是回到 bash 输入法模式下发送 push 请求: ```bash git push -u origin aaa ``` 上述 `-u` 参数的作用在于设定跟踪关系,使得未来每次只需简单地说一句 `git push` 即可自动沿用先前指定过的上游分支信息而无需重复指明具体路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

坚持是一种态度

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

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

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

打赏作者

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

抵扣说明:

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

余额充值