如何将硕大笨重的git仓库拆分成灵活轻巧的模块小仓库

方法1、拆分一个子目录为独立仓库

参考链接:https://segmentfault.com/a/1190000002548731

以前是用 filter-branch 来实现,这个需求太常见了,有人做了个整合的 git-subtree,再后来……subtree 集成进 Git 了。

# 这就是那个大仓库 big-project
$ git clone git@github.com:tom/big-project.git
$ cd big-project

# 把所有 `codes-eiyo` 目录下的相关提交整理为一个新的分支 eiyo
$ git subtree split -P codes-eiyo -b eiyo

# 另建一个新目录并初始化为 git 仓库
$ mkdir ../eiyo
$ cd ../eiyo
$ git init

# 拉取旧仓库的 eiyo 分支到当前的 master 分支
$ git pull ../big-project eiyo
方法2、按模块新建模块目录,重新创建git仓库

在不影响原来Jenkins构建体系情况下,需要思考的问题如下:
原来编译rpm包的触发条件如何触发编译脚本?      写一个脚本遍历每个模块目录,如何有模块更新就返回该模块目录
如何检测每个git模块仓库是否有更新?         用 Git Hooks 进行自动部署 参考链接:https://segmentfault.com/a/1190000003836345
如何配置使用git钩子?                https://git-scm.com/book/zh/v2/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-Git-%E9%92%A9%E5%AD%90

方法3:使用git branch-filter
没有验证通过,执行时导致文件目录被删除,验证时建议将原仓库进行备份

参考链接:https://git-scm.com/book/zh/v2/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-Git-%E9%92%A9%E5%AD%90
原文地址:https://www.cnblogs.com/noxy/p/7192238.html