mgit2.0.2
02 / 07

指令與選項

mgit 只認得自己文件上列出的選項,其他一律原封不動交給 git。

預設行為

不帶任何參數時,等同於在每個儲存庫執行 git status -s

mgit

在試用場執行: mgit

任何 git 指令都可以

第一個不是 mgit 選項的參數之後,所有內容都會原封不動交給 git:

mgit pull
mgit fetch --all --prune
mgit log --oneline -n 3
mgit checkout main
mgit -c core.pager=cat status

解析規則

這一段是 mgit 唯一需要你記住的規則,其餘都是 git 自己的行為:

  1. 由左往右解析,只要遇到不是 mgit 選項的參數(例如 pull-c--git-dir),從那個參數開始的所有內容都交給 git。
  2. 遇到單獨的 -- 也一樣:後面全部交給 git,即使它和 mgit 的選項同名。
  3. 所以 mgit log --quiet--quiet 是 git 的,mgit --quiet log--quiet 才是 mgit 的。
  4. mgit --version 顯示的是 mgit 的版本;要問 git 的版本請用 mgit -- --version

試試 mgit -- --version: mgit -- --version

選項

選項說明
-h, --help顯示說明並結束
-V, --version顯示 mgit 的版本並結束
-l, --list只列出找到的儲存庫(每行一個絕對路徑),不執行 git
-d, --depth <N>向下搜尋的目錄層數,預設 1(只找第一層子目錄)
-q, --quiet不輸出每個儲存庫的標題,只留下 git 自己的輸出
--color <WHEN>auto(預設)、alwaysnever
--no-color等同 --color=never
--ascii只使用 ASCII 符號(不使用 emoji),適合舊版終端機
--summary結束時一律印出統計摘要,而且印到 stdout
-k, --keep-going某個儲存庫失敗仍繼續(預設行為)
--fail-fast遇到第一個失敗就停止
--allow-empty找不到任何儲存庫時仍以 0 結束
--之後的參數全部交給 git

常用範例

指令做什麼
mgit --list先確認會動到哪些目錄,什麼都不執行
mgit --depth 2 fetch連第二層目錄的儲存庫一起更新
mgit -q log --oneline -n 1安靜模式,只看每個 repo 的最新一筆
mgit --fail-fast pull一有衝突就停下來處理
mgit --color=never status輸出到檔案或 CI 日誌時關掉顏色
mgit --ascii在舊版 Windows 主控台使用純 ASCII 輸出

在試用場執行: mgit -q log --oneline -n 1