如何将硕大笨重的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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM