写点什么

百度开源一款基于 Git 的多仓库管理工具:MGit

  • 2021 年 12 月 13 日
  • 本文字数:896 字

    阅读完需:约 3 分钟

百度开源一款基于 Git 的多仓库管理工具:MGit

MGit 是什么


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


MGit 的过去和现在


在百度 APP 组件化演进中,为了使每个组件有清晰的物理边界,便于细粒度权限控制和输出,我们将客户端工程拆分成 200+个组件和仓库;为了降低多仓库的操作成本,对标  Google 的 Repo 开发了 MGit 多仓库管理工具,MGit 的上手成本更低,输出更具可读性,逻辑处理更具安全性。


MGit 正在服务于以下业务线:百度 APP(移动双端)、百度网盘、百度贴吧、好看视频、全民小视频等累计 24 条产品线(2020 年底)。


MGit 的架构设计


1)、架构图:


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

3)、指令的执行周期:

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

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

安装与使用


1)、环境要求:

  • 系统:支持 macOS、Ubuntu,暂不支持 Windows

  • Ruby 版本:>= 2.3.7

2)、安装

gem install m-git

3)、初始化多仓库,体验 MGit 命令

初始化多仓库使用 mgit init 命令,类似于 Git 从远程 clone 新仓库, 会将多个仓库 clone 到本地。

下面通过一个 demo 体验一下 MGit 命令:

# 建议在一个新文件夹中拉取 demo

$ mgit init -g https://github.com/baidu/m-git.git

# 体验一下 mgit 命令

$ mgit -l                              显示所有 migt 管理的仓库

$ mgit branch --compact   查看多仓库的分支

$ mgit status                       查看仓库分支超前/落后情况


未来规划


1)、功能分享 MGit 对 Git 多仓库操作的支持已经比较完善,后续会通过公众号进行技术分享,提高 MGit 的使用率;


2)、社区共建建设并完善 MGit 共建社区,欢迎更多的开发者参与到项目的维护和升级,打造有影响力的开源服务;


贡献和反馈


1)、项目开源地址

【Github 地址】:https://github.com/baidu/m-git

【Gitee 地址】:https://gitee.com/baidu/m-git


如果您有任何意见或问题都可以提 issue 到 Github 或 Gitee,我们将及时为您解答。

发布于: 23 小时前阅读数: 3
用户头像

关注百度开发者中心,收获一手技术干货。 2018.11.12 加入

汇聚百度所有对外开放技术、平台和服务资源,提供全方位支持,助力开发者加速成功,实现开发者、消费者和百度三方共赢。https://developer.baidu.com/

评论

发布
暂无评论
百度开源一款基于 Git 的多仓库管理工具:MGit