zoukankan      html  css  js  c++  java
  • 如何将硕大笨重的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
  • 相关阅读:
    软件开发流程(转载)
    SQL_sql的简单查询
    session销毁
    静态数据成员和函数
    word插入图片显示不完整的解决的方法
    【Hibernate步步为营】--复合主键映射具体解释
    android studio 在线更新android sdk,遇到无法Fetching https://dl-ssl.google.com/...的解决方式
    Cisco笔试——2014年
    全局钩子具体解释
    rackup工具
  • 原文地址:https://www.cnblogs.com/noxy/p/7192238.html
Copyright © 2011-2022 走看看