Hub GitHub Copilot CLI 完整教學

第 2 篇 核心 · 第 4 章

用說人話叫它讀、改、跑程式碼

從一句「幫我看看這個專案在幹嘛」開始,學會核可流程、用 @ 引用檔案、不進畫面的一次性用法,還有它跟 Claude Code、Codex CLI 最不一樣的地方——一顆大腦可以換好幾顆。

篇導讀(第 2 篇 核心)

適合對象——已經裝好 GitHub Copilot CLI、登入完成(第 3 章走過一輪了),想真正開始「叫它做事」的你。

閱讀方式——打開終端機,在一個你不怕弄壞的小專案裡邊讀邊試。

本篇做完你會——用一句話請 Copilot 讀專案、改檔、跑指令,看懂它的核可提示在問你什麼,還會用 @ 引檔案、切模型、選擇要不要進互動畫面。

涵蓋哪幾章——第 4 章(本章,說人話下指令)、第 5 章copilot-instructions.md 與專案記憶)、第 6 章(整合 Git 與安全地讓它動手)。

想像你旁邊坐了一位剛到職、什麼都懂技術、但完全不認識你這個專案的工程師。你不用寫一行 code,只要像交辦同事那樣開口:「幫我看看這個專案在幹嘛」「這支函式怎麼一直報錯,幫我修一下」。它會自己去讀你的檔案、想清楚該怎麼做、動手改,然後把結果攤在你眼前讓你點頭。

這一章教的就是這個「開口」的基本迴圈。但在動手之前,有一件事必須先講清楚——因為網路上到處都是會讓你認錯對象的舊教學。

先講清楚:你現在用的是「新」的 Copilot CLI,不是那個已經停用的舊指令

GitHub 把「Copilot CLI」這個名字用過兩次,而且剛好在同一天(2025-09-25)一個宣布棄用、另一個公開亮相,非常容易搞混。

項目舊:gh copilot(gh 擴充功能)新:copilot(本書教的)
怎麼裝gh extension install github/gh-copilotnpm install -g @github/copilot 等(第 2 章
指令gh copilot suggestgh copilot explaincopilot
能做什麼只能建議解釋一行指令文字會規劃、讀檔、改檔、跑指令,一路做到完成
官方怎麼定性「the limited suggestion capabilities of gh-copilot」——能力有限的建議工具「a fully agentic AI assistant that provides the full power of Copilot's coding agent locally in your terminal」——把 Copilot coding agent 的完整能力搬進你的終端機
現況2025-09-25 公告棄用,2025-10-25 已正式停止運作2025-09-25 公開預覽 → 2026-02-25 正式 GA

翻成白話:舊版是一個「你打字問它、它教你該打什麼指令」的小幫手,動手做事的還是你自己;新版才是真的會自己讀你的專案、動手改檔案、跑測試的那種「agentic」工具,也就是本書從第 0 章開始一路在教的東西。

補充資訊

事情還有一個轉折,容易讓人二次誤會:2026-01-21 官方另外公告,gh CLI 使用者現在打 gh copilot 這個指令,會被導引去安裝、啟動新版的獨立 copilot 工具(官方原文:「GitHub CLI users can now run gh copilot to install and run the GitHub Copilot CLI.」)。也就是說,gh copilot suggest(舊指令,已停用)跟現在單獨打一句 gh copilot(新工具的安裝導引)同名不同貨。如果你在網路上查到教學文章寫 gh copilot suggestgh copilot explain,那是已經停用的舊版;本書從頭到尾教的都是獨立套件裝出來的 copilot 指令,兩者請不要混用。

版本時效提醒

GitHub Copilot CLI 從 2025 年 9 月公開預覽到 2026 年 2 月 GA,中間改版速度很快,之後也持續更新(例如本書查證當下 repo 近期兩天內連發過四個版號)。本章講的都是官方文件逐字查證過的核心操作,但畫面細節、指令措辭都可能隨版本微調。任何時候,實機打 copilot --help 或在互動畫面裡打 /help,都比書上寫的更準。

打字之前先搞懂一件事:這不是「另一個聊天視窗」

如果你用過 ChatGPT 網頁版問過程式問題,應該很熟悉這套動作:打開編輯器,找到那段可疑的程式碼,全選複製,切到瀏覽器分頁貼上,再打一段話跟它解釋「這是 src/app.js 裡處理登入的那個函式」;等它回答完,把建議的程式碼再複製回編輯器,存檔,自己跑一次確認有沒有真的修好。下一個問題,同樣的複製貼上再走一輪——因為網頁版聊天視窗天生碰不到你電腦裡的任何一個檔案,你問的每一句話都得自己先把「證據」打包好餵給它。

本章要開始教的 Copilot CLI,結構上完全是另一回事。它不是瀏覽器裡的一個分頁,而是一支直接跑在你專案資料夾裡的程式——一旦你在 4.1 核可了「信任這個資料夾」,它就能自己去讀你的檔案系統、自己找到 src/app.js、自己看懂那個函式在幹嘛,你不用複製貼上任何一行程式碼,只要像跟坐在你旁邊的同事說話一樣講「登入那個函式一直報錯,幫我看看」。這就是「常駐」兩個字的實際意義:它不是每次打開都要你重新自我介紹一次專案的新分頁,而是活在你的終端機、活在你的檔案系統裡的一個常駐存在。

比較項目ChatGPT 網頁版聊天視窗終端機常駐 agent(Copilot CLI)
要它看一段程式碼自己找到檔案、複製片段、貼上聊天框,還要打字說明是哪個檔案、第幾行它直接讀你的檔案系統;之後 4.3 會教的 @ 一鍵指路徑,甚至連打字說明路徑都省了
套用它給的建議複製它回覆裡的程式碼區塊,貼回編輯器,存檔,自己跑一次確認核可(4.2 會教)之後它自己動手改檔案、自己跑指令,改完直接是可執行的結果,不是一段等你貼上的文字
換一個問題或隔天回來脈絡鎖在那個聊天視窗的對話紀錄裡,換分頁、換裝置就得重講一次專案背景脈絡放在專案本身:只要專案資料夾還在、裡面寫著給它看的說明文件(第 5 章教的 AGENTS.mdCLAUDE.md 等),不管哪次啟動、哪個 session,它一開工就會自己重新掃一遍,不必你每次重講
能不能自己動手只能生出文字建議,動手改檔、跑指令的永遠是你自己核可之後真的會讀、改、跑——這正是官方定性的「agentic」,本章開頭那句「你不用寫一行 code」講的就是這件事

小技巧

換句話說,「常駐」買到的不是一個更聰明的聊天機器人,而是省掉你在人跟程式碼之間來回搬運的工夫——你不用再當那個負責複製貼上、手動套用建議的中間人,它自己就能碰到你電腦裡真實存在的檔案。這也是為什麼接下來的操作步驟(登入、核可、@ 引用、快捷鍵)會反覆出現「它去讀」「它去改」「它去跑」這種說法,而不是「它建議你」——記住這個差別,後面幾節的每一個動作看起來就會很合理。

4.1 打開 copilot:走一次信任目錄與登入提示

跟其他章節一樣,先在你想工作的專案資料夾裡打開終端機,輸入:

copilot

按下 Enter,Copilot 會在你目前所在的資料夾啟動一個互動式對話畫面,跟你「結對」工作——它能在這個資料夾裡讀檔、改檔、跑指令。

第一次進資料夾:信任目錄提示

如果這是你第一次在這個資料夾執行 copilot,它會先跳出一個「信任目錄」(trust folder)的提示框,讓你三選一:

選項意思
"Yes, proceed"只信任這一次,這個 session 結束後下次還會再問
"Yes, and remember this folder"永久記住這個資料夾,之後不會再問(清單存在 ~/.copilot/config.json
"No, exit"不信任,直接離開

這正是第 1 章埋下的伏筆——GitHub Copilot CLI 在真正開始讀你的檔案之前,會先確認「這個資料夾我可以碰嗎」。

還沒登入?打 /login

如果你還沒走過第 3 章的登入流程,這時輸入:

/login

它會走 OAuth device flow,照螢幕上的提示驗證你的 GitHub 帳戶。登入細節(含企業 SSO、認證存放位置)第 3 章已經完整講過,這裡不重複。

一句話試試手感

官方建議,剛裝好、剛信任完資料夾,先問一句最簡單的話,感受一下它怎麼「讀」你的專案:

Give me an overview of this project.

它會自己去翻你的檔案、摘要出這個專案在做什麼——這是熱身,也是確認一切設定正常的最快方法。

補充資訊

預設互動權限下,尚未授權的寫入會要求你核可;如果你已在這個 session 放行工具,或用旗標/設定預先授權,就不會逐次詢問。即使它已經讀完專案、擬好修改計畫,核可前仍要看命令、目標路徑與外部網址。

4.2 工具核可流程:唯讀自動放行,會改東西的要你點頭

Copilot 把它能做的動作分成兩類:

  • 唯讀操作,自動放行:搜尋、讀檔案、跑不會動任何東西的 shell 指令——官方原文「are allowed automatically」。
  • 會改動系統的操作,預設會要求核可:破壞性的 shell 指令、編輯檔案、存取網址。若尚未以 session 核可或旗標預先放行,touchchmodnodesed 這類指令第一次用到會先跳出來問你。

問你的時候,畫面上會給你三個選項:

選項意思
"Yes"這一次核可就好,下次同樣的動作還會再問
"Yes, and approve TOOL for the rest of the running session"這個工具在這次對話裡都免問,一路放行到你關掉這個 session
"No, and tell Copilot what to do differently"拒絕,順便告訴它換個做法

補充資訊

這三個選項只是「你會看到什麼」的體感介紹。核可機制背後完整的設計——--allow-tool--deny-tool 怎麼細調到子指令層級、--allow-all--yolo 完全放行的官方紅線警告、核可紀錄存在哪個檔案——都留給第 6 章「整合 Git 與安全地讓它動手」整章深講。這裡先記住:在預設互動設定下,未授權的改動會停下來問;預先授權後就不會

4.3 一個鍵把檔案塞給它看:@ 引用

跟 Claude Code、Codex CLI、Gemini CLI 一樣,Copilot CLI 也有這個好用招式:在輸入框裡打一個 @,接著相對路徑,就能把某個檔案指給它看。

官方原文範例(逐字):To add a specific file to your prompt, use @ followed by the relative path to the file.

Explain @config/ci/ci-required-checks.yml

Fix the bug in @src/app.js

@ 之後,輸入框下方會跳出符合的路徑清單,可以用方向鍵挑、按 Tab 補全——不用自己一個字一個字把路徑打對。

小技巧

跟純文字形容「那個處理登入的檔案」比起來,直接用 @ 把檔案指給它看,它不用自己再去猜你講的是哪一個檔案——尤其專案裡同名檔案不只一個的時候,@ 幾乎是必用招式。

4.4 不想進互動畫面,只問一句:-p-s

有時候你只想快問一句、要一個答案,不想開整個對話畫面,或是想把 Copilot 塞進一支腳本裡跑。這時候用 -p(或全名 --prompt):

copilot -p "In Git, how can I apply a commit from another branch"

它會跑完這一次任務、把結果印在終端機上,然後結束,不會停在互動畫面裡等你繼續打字。

如果你打算把輸出接到別的程式處理(管線串接),再加一個 -s

copilot -p "In Git, how can I apply a commit from another branch" -s

-s 會讓輸出只留下 Copilot 的回應本身,把額外的裝飾資訊省掉,比較適合寫腳本時解析。

補充資訊

注意一個跟 Claude Code、Codex CLI 不太一樣的地方:Copilot CLI 沒有一個獨立的 exec 子指令(像 Codex 的 codex exec)。互動模式跟非互動模式用的是同一個 copilot 指令,差別只在有沒有加 -p。這一節只是先讓你知道「有這招」——-p-s 完整的自動化玩法(權限旗標家族、排程、--model 跨供應商切換)留給第 10 章「非互動自動化」整章講。

4.5 鍵盤快捷鍵,還有先討論計畫再動手的 Plan Mode

互動畫面裡有幾個常用鍵,先認起來,用起來會順手很多:

快捷鍵功能
Esc取消目前操作
Esc 連按兩下(輸入框需為空)開啟「回滾選擇器」——這是回頭改東西用的,完整玩法留給第 6 章
Ctrl+C停止思考、清除輸入,或退出
Ctrl+L清空螢幕(畫面被洗版時很好用)
Shift+Tab切換進出 Plan Mode(見下方)
@引用檔案(見 4.3)
/顯示斜線指令選單
?標籤式說明
上下箭頭瀏覽你之前打過的指令歷史

小技巧

/ 會跳出官方原始文件列出的超過 80 個斜線指令,新手不需要一次全部記住。這一章只挑跟本章相關的講,之後的章節會陸續補上其他常用的。想看完整清單,/help 是最準的來源。

Plan Mode:先討論計畫,再讓它動手

有時候任務比較大、或連你自己都還沒完全想清楚該怎麼改,直接讓它一路衝下去容易做歪。這時候按 Shift+Tab,切進 Plan Mode

官方原文:Plan mode 讓你「collaborate with Copilot on an implementation plan before any code is written」——在真正動筆改任何一行程式碼之前,先跟你一起討論出一份實作計畫,你確認過、覺得方向對了,才讓它真的動手。Plan Mode 跟預設的 ask/execute 模式是互斥的兩種狀態,一次只能在其中一邊。

補充資訊

文件裡還提到一句花絮:Copilot CLI 支援「speak your prompt」,也就是可以語音輸入你的提示詞。哪些平台支援、要不要額外設定,官方頁面沒有展開細節,這裡先讓你知道有這個選項,想深入研究就自己動手試試看。

4.6 多模型架構:不是只有一顆大腦

這是 GitHub Copilot CLI 跟本書其他幾套工具結構性最不一樣的地方,值得單獨一節講清楚。

Claude Code 只能用 Anthropic 自家的 Claude 系列模型;Codex CLI 只能用 OpenAI 自家的 GPT/Codex 系列模型。GitHub Copilot CLI 不一樣——它背後是官方稱為「GitHub Copilot agentic harness」的多供應商架構,支援 GPT、Claude、Gemini、MAI 等 20 多個前沿模型家族,甚至能自己接開源或本地模型(bring-your-own-key)。

  • 預設模型:查證當下是 Claude Sonnet 4.5,但模型名稱本身會隨時間更新。
  • 想換一顆大腦:互動畫面裡打 /model,就能即時切換要用哪一顆模型。
  • 懶得自己選:2026-04-17 起支援「Copilot auto model selection」,選 auto 時系統會依你的方案與組織政策自動路由到合適的模型(changelog 舉例可能路由到 GPT-5.4、GPT-5.3-Codex、Sonnet 4.6、Haiku 4.5 等)。
/model

版本時效提醒

上面列的具體模型型號(GPT-5.4、Sonnet 4.6……)只是官方 changelog 當時舉的例子,這份清單會持續變動。寫進教材只是示意,實際能選哪些模型,永遠以你打 /model 當下看到的畫面為準,別把書上的型號名字當成長期不變的事實硬背下來。

小技巧

這個「一鍵換供應商」的能力,之後幾章會反覆用到——例如第 10 章的非互動模式也吃同一個 --model 旗標,第 8 章還會教你怎麼把偏好的模型寫進設定檔,變成每次啟動的預設值,不用每次都手動切一次。

小結

這一章你學會了跟 GitHub Copilot CLI「開口對話」的基本迴圈:先分清楚你裝的是新版獨立 copilot 指令、不是已經停用的舊版 gh copilot;打 copilot 進互動畫面,走過信任目錄與登入;看懂核可提示在問你什麼——唯讀自動放行、改東西一定要你點頭;用 @ 一鍵把檔案指給它看;用 -p-s 不進畫面直接問一句;認熟幾個常用快捷鍵,還有先討論計畫再動手的 Plan Mode。最後你也知道了 Copilot CLI 跟 Claude Code、Codex CLI 最不一樣的地方——它不是只綁一顆大腦,/model 隨時能換供應商。

動手試試

  1. 在一個你不怕弄壞的小專案資料夾裡打 copilot,走過一次信任目錄提示,問它一句 Give me an overview of this project.,看它怎麼讀檔回應。
  2. 找一個你熟悉的檔案,試著用 @ 把它指給 Copilot 看,請它解釋這個檔案在做什麼(例如 Explain @package.json)。
  3. 故意請它做一個會改動檔案的小動作(例如「幫我在這個檔案加一行註解」),觀察核可提示跳出來的畫面,練習分辨「單次核可」跟「這個 session 都放行」的差別。
  4. copilot -p "..." 問一句簡單的問題,體驗一下不進互動畫面、跑完就結束的用法。
  5. /model 看看你目前的方案能選哪些模型,跟本章寫的預設模型(Claude Sonnet 4.5)對照一下是否一致。

本章官方文件參考