百度开源一款基于 Git 的多仓库管理工具:MGit
2021.04.02 14:09浏览量:1114简介:MGit是一款基于Git的多仓库管理工具,可以安全的、高效的管理多个Git仓库。
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 共建社区,欢迎更多的开发者参与到项目的维护和升级,打造有影响力的开源服务。
贡献和反馈
项目开源地址:
【Github地址】:https://github.com/baidu/m-git
【Gitee地址】:https://gitee.com/baidu/m-git
发表评论
登录后可评论,请前往 登录 或 注册