git将子目录拆分独立仓库并保存提交记录
1. 需求说明
项目原来很大,将多个子模块柔和在一起,项目越做越大,这是需要将子模块拆分单独维护升级版本
2. 拆分独立仓库
2.1 将子目录拆分独立库
git subtree split -P <name-of-folder> -b <name-of-new-branch>
2.2 创建文件夹,拉取分支
# 1. 创建文件夹,并初始化仓库
mkdir <new-repo>
git init
# 2 拉取分支(windows 也需要使用 / 分隔)
git pull </path/to/big-repo> <name-of-new-branch>
到此为止,已经将子文件夹拆分出了独立库
3. 清理原仓库
既然子文件夹已经拆分成独立仓库,原仓库中的子文件夹就可以放心的删除了
#1. 递归删除所有子文件价中的所有文件
git rm -rf <name-of-folder>
#2. 提交修改
git commit -m 'Remove some name-of-folder'
#3. 删除分支
git branch -D <name-of-new-branch>
4. 关联新仓库
git commit -m "first commit"
# 添加仓库源
git remote add origin xxx.git
# 提交本地到源
git push -u origin master
参考文档: