02 / 07
指令與選項
mgit 只認得自己文件上列出的選項,其他一律原封不動交給 git。
預設行為
不帶任何參數時,等同於在每個儲存庫執行 git status -s:
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 自己的行為:
- 由左往右解析,只要遇到不是 mgit 選項的參數(例如
pull、-c、--git-dir),從那個參數開始的所有內容都交給 git。 - 遇到單獨的
--也一樣:後面全部交給 git,即使它和 mgit 的選項同名。 - 所以
mgit log --quiet的--quiet是 git 的,mgit --quiet log的--quiet才是 mgit 的。 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(預設)、always、never |
--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 輸出 |