一份 Git 速查表替代方案是一份可搜尋、可安全複製的參考資料,能依類別、指令名稱或工作流程用途篩選十二個來源核對過的 Git 指令,而不是靜態地把每一個旗標與別名一股腦全部列出。傳統的 PDF 或 Markdown 速查表一次列出數十個指令,這種做法則把焦點縮小到開發人員在日常工作中實際會執行的設定、檢查、暫存、提交、分支、抓取與推送操作,並為每一項提供說明文字、佔位符規則,以及「先檢查再變更」的指引。這份參考資料是本機且唯讀的;它不會執行 Git、不會開啟儲存庫、不會上傳資料,也不會儲存指令,因此搜尋步驟不會動到工作區。每個項目都帶有唯一識別碼與一個已核對過的指令範本,因此複製動作永遠會回傳畫面上顯示的完整字串,前提是你已將像 <url>、<path>、<message> 和 <branch> 這類角括號佔位符替換完畢。正是「搜尋 + 來源核對過的範本 + 明確省略具破壞性的指令」這三者的結合,使它成為單頁速查表的嚴肅替代方案,因為複製一個指令,不再等同於理解它在共用工作區中可能的影響範圍。
大多數 Git 速查表都是靜態的:一份 PDF、一個 Markdown 檔、一個 Notion 頁面,或一份釘選在儲存庫上的冗長 README。它們一次列出上百個指令並各附一行摘要。當你已經熟悉上下文、只需要某個旗標的標籤時,這類速查表能作為快速複習。但作為快速複製的來源,它就變得冒險,因為它們並未告訴你要替換哪些佔位符、指令該以什麼順序執行,或某個指令是否應在檢查步驟之後再執行。替代方案則重新架構同一份參考資料:它不再傾倒所有內容,而是讓你搜尋真正需要的指令、閱讀其說明、替換角括號中的值,然後確認儲存庫狀態——包括路徑、分支、遠端與已暫存的差異——再執行指令。Git 速查表正是圍繞這樣的工作流程所打造,並且能與你現有的筆記並存使用,因為它不會讀取、寫入或上傳你儲存庫中的任何內容。
這十二個指令涵蓋了日常的 Git 生命週期:init、clone、short status、unstaged diff、compact decorated log、add、commit、current branch、switch、switch-and-create、fetch with prune,以及 push with upstream。這一組指令負責啟動儲存庫、檢查它、記錄工作、建立分支並分享出去。它刻意省略了 force push、hard reset、clean、rebase 與歷史改寫,因為這些操作會捨棄或改寫工作內容,需要依儲存庫情況擬定復原計畫,而這是與情境無關的快速複製速查表無法提供的。精選的目錄能降低你在時限壓力下貼錯指令的機率,也讓「先檢查」的紀律更容易落實,因為你不必為了找到安全的指令而捲過四十個不相干的範本。

如何安全地搜尋並複製範本
- 在瀏覽器中開啟 Git 速查表頁面。不需要登入或帳號,載入完成後這份參考資料完全在本機運作。
- 使用搜尋框依類別(設定、檢查、暫存、提交、分支、抓取、推送)、依指令名稱(例如 switch 或 diff),或依任務短語(例如「publish a new branch」)進行篩選。
- 閱讀畫面上顯示項目的說明,並確認該指令符合你的預期。每個項目都會顯示說明文字、唯一識別碼,以及完整的指令範本。
- 替換範本中所有的角括號佔位符。常見的佔位符包括 <url>、<path>、<message> 和 <branch>;請勿把角括號原樣輸入。任何含有空格或對 shell 具有特殊意義的字元(例如 $ 或 ")的值,都應加上引號。
- 在執行任何變更指令之前,先用檢查指令(例如 git status --short)確認工作目錄、目前分支、設定的遠端,以及已暫存的差異。
- 複製替換後的指令字串並貼到你的 shell 中。執行後再次檢查狀態、差異、提交或遠端狀態,因為在這段期間另一個程序、編輯器、hook 或協作者可能已經修改了檔案。
貼上之前的佔位符規則
任何範本中的角括號都是佔位符。請連同角括號一起整個替換,並在必要時為對 shell 具有特殊意義的值加上引號。因此 git clone <url> 會變成 git clone [email protected]:org/repo.git,而不是 git clone <[email protected]:org/repo.git>。一個被複製的指令,並不會僅因為語法可以解析就自動安全;即使上游分支名稱與遠端 URL 與儲存庫政策不一致,git push -u origin <branch> 看起來仍然正確。團隊的工作流程可能要求簽章提交、受保護的分支、pull request,或不同的遠端名稱,因此佔位符替換這一步是檢查點,而不是走過場。依據 Git 參考手冊,佔位符在每次執行前都必須先在腦中展開,這個習慣能保護共用工作區免於無聲的錯誤。絕對不要把祕密貼進提交訊息或遠端 URL 中。
先檢查,再變更
Git 的指令有兩種:描述儲存庫狀態的,以及改變儲存庫狀態的。這十二個項目大幅偏向前者,包括 short status、unstaged diff、compact decorated log 與 current branch,因為最安全的執行始於對自身位置有清晰的掌握。變更指令(add、commit、switch、switch -c、fetch --prune、push -u)在列出時都內建了「先檢查」的提醒。git status --short 會摘要已追蹤、已暫存、已修改、已刪除與未追蹤的路徑;git diff 顯示未暫存的變更,git diff --cached 則顯示已暫存的變更;速查表會指出這些對比,而不是把它們藏起來。輸出永遠是某一瞬間的快照,因此任何成功執行之後的最後一步,就是再做一次全新的檢查,因為另一個程序、編輯器、hook 或協作者之後仍可能修改檔案或參考。一份聚焦於「先檢查」並逐步闡述同一概念的指南,整理於這份 先檢查的 Git 工作流程指南中。
分支與遠端操作會影響協作
這十二個項目中有兩個涉及協作:git switch -c 會建立本地分支,而 git push -u origin <branch> 會發布該分支並記錄上游。git fetch --prune 會下載遠端參考,並移除已失效的遠端追蹤名稱,但不會合併到你的當前分支。prune 雖然方便,但它可能讓已刪除的遠端分支從你的本地追蹤檢視中消失,因此應該是有意識的選擇,而不是反射動作。在執行這些指令之前,請確認遠端 URL、團隊對上游命名規則的政策,以及你的分支是否受到保護或需要 pull request。Atlassian Git 教學也描述了相同的「先檢查」順序:先確認分支與遠端狀態,再發布。使用錯誤的上游名稱進行推送在本地端可以復原,但在共用遠端上所造成的雜訊,清理起來會耗時得多。
這份參考資料刻意省略的內容
產品的設計說明解釋了為何一些熟悉的 Git 指令未列入。Reset --hard、force push、clean、rebase 與歷史改寫,全都可能捨棄提交或改寫共用歷史。它們會出現在幾乎每一份冗長的速查表中,因為它們也常出現在教學裡;但它們需要的復原規畫,取決於儲存庫、團隊與備份策略。一份只供複製的替代方案若把它們與 git status --short 並列,將無可避免地引導誤用,這與「先檢查」工具應有的方向背道而馳。這份參考資料同樣未收錄大量的別名目錄,因此你不會不小心把別人的快捷鍵複製到自己的 shell 中。當自動化程序呼叫 Git 時,同樣適用這十二個指令,但你應該固定工作目錄、處理結束代碼,並擷取足夠且不含敏感資訊的輸出,以診斷部分失敗的情況,同時避免洩漏憑證。
靜態速查表 vs 可搜尋速查表
| 考量面向 | 靜態速查表(PDF 或 README) | 可搜尋的 Git 速查表 |
|---|---|---|
| 尋找指令 | 在冗長的文件中捲動或使用 Ctrl+F | 依類別、指令或任務短語篩選 |
| 佔位符處理 | 由讀者自行推測慣例 | 明確的角括號規則,並提供加引號的指引 |
| 來源核對 | 通常只有單一作者,沒有稽核紀錄 | 十二個項目皆已對照 Git 官方文件與獨立的教學來源進行核對 |
| 具破壞性的指令 | 經常與安全指令混雜在一起 | 刻意省略,並說明需要復原規畫的原因 |
| 執行安全性 | 僅有「照抄照貼」的風險 | 在變更指令之前,提示「先檢查」 |
| 純本機運作 | 取決於檔案來源 | 唯讀參考,不存取儲存庫、不上傳、不需登入 |
| 目錄規模 | 常見 50 至 200 個項目 | 聚焦的十二個項目,涵蓋設定、檢查、暫存、提交、分支、抓取、推送 |
如果你已經有一份合用的靜態速查表,這份替代方案的設計目的是補充而非取代它。在時間壓力下需要查詢指令時,使用可搜尋的速查表;在研讀教學或撰寫 runbook 時,則切回你慣用的長篇筆記。Git 版本與組織政策各有不同,因此在執行任何不熟悉的變更之前,請依賴 git help <command>、專案文件,以及可復原的備份或分支。
延伸閱讀:不同程式語言的 Hello World 替代方案。