在公司中我们经常会多个maven项目放在一个工程目录下集中管理,特别是微服务项目。但是随着我们业务越来越多,代码越来约复杂,以及线上项目出现问题要紧急修复时,你会发现我们的项目版本号无法控制,因为可能在某个时间点只需要对一个子模块进行hotfix或者release,但是所有模块都是在同一个工程目下下的,明明其他模块没有变动,版本也跟着进行了一次升级,不利于我们版本维护。遇到问题解决问题,怎么做?模块拆分呗。下面来看一下我的模块拆分方法。
首先在gitlab上创建新的项目,用于存放我们新拆出来的模块代码。
-
通过本地控制台进入到我们的工程目录,根据我们要拆分的子目录的名称创建新的分支
git subtree split -P childDirName/ -b childDirName-newBrach
-
返回父级工程目录所在的目录,创建一个新的目录
mkdir new-dir cd new-dir git init //初始化git 目录
-
初始化完成后,将步骤1创建的新的分支的代码来到当前的目录中
git pull ../工程目录 childDirName-newBrach
-
这时代码已经分离到新的目录来了,将该目录的代码添加到远程新的git地址仓库中
git remote add origin ********.git
-
上传代码
git push -u origin master
这时可能会报错:
使用命令:git pull origin master --allow-unrelated-histories
完成之后再执行
git push -u origin master
OK 代码拆分完成!