MGit基于 Git 的多倉(cāng)庫(kù)管理工具
MGit 是一款基于 Git 的多倉(cāng)庫(kù)管理工具,可以安全、高效地管理多個(gè) Git 倉(cāng)庫(kù),適合于在多個(gè)倉(cāng)庫(kù)中進(jìn)行關(guān)聯(lián)開(kāi)發(fā)的項(xiàng)目,實(shí)現(xiàn)批量的版本管理功能,提高 Git 操作的效率,避免逐個(gè)執(zhí)行 Git 命令帶來(lái)的誤操作風(fēng)險(xiǎn)。
主要特性
-
易用的命令:封裝 Git 命令,命令和參數(shù)均由 Git 衍生而來(lái),會(huì)使用 Git 就可以成本低上手 MGit。
-
直觀高效的執(zhí)行命令:提供圖表化的結(jié)果展示,開(kāi)發(fā)者可以快速查看命令在多個(gè)倉(cāng)庫(kù)的執(zhí)行結(jié)果; 多線程并發(fā)執(zhí)行多倉(cāng)庫(kù)命令,通過(guò)倉(cāng)庫(kù)緩存機(jī)制提高倉(cāng)庫(kù)的拉取效率。
-
安全的執(zhí)行命令:在執(zhí)行命令前對(duì)多倉(cāng)庫(kù)狀態(tài)進(jìn)行安全檢查:分支是否異常,工作區(qū)是否未提交代碼等; 對(duì) .git 進(jìn)行托管與 Git 工作區(qū)分類,避免誤刪丟失改動(dòng)或提交; 執(zhí)行存在風(fēng)險(xiǎn)的操作時(shí),會(huì)給與風(fēng)險(xiǎn)操作提示,避免誤操作。
-
方便擴(kuò)展:支持加載 ruby-gem 包作為插件,gem 包名格式
m-git-${suffix}和mgit-${suffix}快速的擴(kuò)展 MGit 的命令,增加自定義命令,擴(kuò)展已有命令的功能; 提供類似git hook的 hook 點(diǎn),方便開(kāi)發(fā)者實(shí)現(xiàn)自定義邏輯。
MGit 架構(gòu)設(shè)計(jì)
架構(gòu)圖
核心概念:根據(jù)一張配置表操作多個(gè)倉(cāng)庫(kù)
指令的執(zhí)行周期
-
指令解析:解析輸入指令的類型,提取并分離指令的 git 原生參數(shù)和自定義參數(shù)。
-
執(zhí)行指令:根據(jù)具體指令調(diào)用指令腳本,根據(jù)具體參數(shù)操作指定的倉(cāng)庫(kù)。
