Git 是一款基于 Git 的多仓库管理工具,可以安全、高效地管理多个 Git 仓库,适合于在多个仓库中进行关联开发的项目,实现批量的版本管理功能,提高 Git 操作的效率,避免逐个执行 Git 命令带来的误操作风险。

主要特性

  • 易用的命令:封装 Git 命令,命令和参数均由 Git 衍生而来,会使用 Git 就可以成本低上手 MGit。

  • 直观高效的执行命令:提供图表化的结果展示,开发者可以快速查看命令在多个仓库的执行结果; 多线程并发执行多仓库命令,通过仓库缓存机制提高仓库的拉取效率。

  • 安全的执行命令:在执行命令前对多仓库状态进行安全检查:分支是否异常,工作区是否未提交代码等; 对 .git 进行托管与 Git 工作区分类,避免误删丢失改动或提交; 执行存在风险的操作时,会给与风险操作提示,避免误操作。

  • 方便扩展:支持加载 ruby-gem 包作为插件,gem 包名格式 m-git-${suffix}mgit-${suffix} 快速的扩展 MGit 的命令,增加自定义命令,扩展已有命令的功能; 提供类似git hook的 hook 点,方便开发者实现自定义逻辑。

MGit 架构设计

架构图

核心概念:根据一张配置表操作多个仓库

指令的执行周期

  • 指令解析:解析输入指令的类型,提取并分离指令的 git 原生参数和自定义参数。

  • 执行指令:根据具体指令调用指令脚本,根据具体参数操作指定的仓库。