使用 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