Git - 现有项目拆分子模块

1,036 阅读1分钟

使用 git subtree 为子项目创建一个 branch,该 branch 包含子项目相关的所有历史记录

操作如下

## MAIN_PROJ_PATH: 需要被拆分的主工程路径
## SUB_PROJ_RELATIVE_PATH: 需要拆分出来的子工程相对于主工程的路径
## SOME_NAME: 任意取的某个分支名
## SUB_PROJ_NAME: 子工程项目名
## GIT_REMOTE_URL: 子工程指向的仓库地址

cd MAIN_PROJ_PATH
git subtree split -P SUB_PROJ_RELATIVE_PATH -b SOME_NAME

cd ..
git clone -b SOME_NAME MAIN_PROJ_PATH SUB_PROJ_NAME

cd SUB_PROJ_NAME
git branch -m master
git remote remove origin
git remote add origin GIT_REMOTE_URL
git push -u origin master

cd MAIN_PROJ_PATH
git branch -D SOME_NAME

设置完所有子模块后,将它们添加到“主”仓库中 git submodule add GIT_REMOTE_URL