第 2 篇 核心 · 第 4 章
用說人話叫它讀、改、跑程式碼
從一句「幫我看看這個專案在幹嘛」開始,學會核可流程、用 @ 引用檔案、不進畫面的一次性用法,還有它跟 Claude Code、Codex CLI 最不一樣的地方——一顆大腦可以換好幾顆。
想像你旁邊坐了一位剛到職、什麼都懂技術、但完全不認識你這個專案的工程師。你不用寫一行 code,只要像交辦同事那樣開口:「幫我看看這個專案在幹嘛」「這支函式怎麼一直報錯,幫我修一下」。它會自己去讀你的檔案、想清楚該怎麼做、動手改,然後把結果攤在你眼前讓你點頭。
這一章教的就是這個「開口」的基本迴圈。但在動手之前,有一件事必須先講清楚——因為網路上到處都是會讓你認錯對象的舊教學。
先講清楚:你現在用的是「新」的 Copilot CLI,不是那個已經停用的舊指令
GitHub 把「Copilot CLI」這個名字用過兩次,而且剛好在同一天(2025-09-25)一個宣布棄用、另一個公開亮相,非常容易搞混。
| 項目 | 舊:gh copilot(gh 擴充功能) | 新:copilot(本書教的) |
|---|---|---|
| 怎麼裝 | gh extension install github/gh-copilot | npm install -g @github/copilot 等(第 2 章) |
| 指令 | gh copilot suggest、gh copilot explain | copilot |
| 能做什麼 | 只能建議或解釋一行指令文字 | 會規劃、讀檔、改檔、跑指令,一路做到完成 |
| 官方怎麼定性 | 「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 suggest 或 gh 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.md/CLAUDE.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 核可或旗標預先放行,
touch、chmod、node、sed這類指令第一次用到會先跳出來問你。
問你的時候,畫面上會給你三個選項:
| 選項 | 意思 |
|---|---|
| "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 當下看到的畫面為準,別把書上的型號名字當成長期不變的事實硬背下來。
小結
這一章你學會了跟 GitHub Copilot CLI「開口對話」的基本迴圈:先分清楚你裝的是新版獨立 copilot 指令、不是已經停用的舊版 gh copilot;打 copilot 進互動畫面,走過信任目錄與登入;看懂核可提示在問你什麼——唯讀自動放行、改東西一定要你點頭;用 @ 一鍵把檔案指給它看;用 -p/-s 不進畫面直接問一句;認熟幾個常用快捷鍵,還有先討論計畫再動手的 Plan Mode。最後你也知道了 Copilot CLI 跟 Claude Code、Codex CLI 最不一樣的地方——它不是只綁一顆大腦,/model 隨時能換供應商。
動手試試
- 在一個你不怕弄壞的小專案資料夾裡打
copilot,走過一次信任目錄提示,問它一句Give me an overview of this project.,看它怎麼讀檔回應。 - 找一個你熟悉的檔案,試著用
@把它指給 Copilot 看,請它解釋這個檔案在做什麼(例如Explain @package.json)。 - 故意請它做一個會改動檔案的小動作(例如「幫我在這個檔案加一行註解」),觀察核可提示跳出來的畫面,練習分辨「單次核可」跟「這個 session 都放行」的差別。
- 用
copilot -p "..."問一句簡單的問題,體驗一下不進互動畫面、跑完就結束的用法。 - 打
/model看看你目前的方案能選哪些模型,跟本章寫的預設模型(Claude Sonnet 4.5)對照一下是否一致。
本章官方文件參考
- CLI 快速上手:https://docs.github.com/en/copilot/how-tos/copilot-cli/cli-getting-started
- 使用 Copilot CLI(互動模式總覽):https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/overview
- 回滾操作(
/undo//rewind,Plan Mode 相關按鍵):https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/roll-back-changes - Copilot auto model selection 公告:https://github.blog/changelog/2026-04-17-github-copilot-cli-now-supports-copilot-auto-model-selection/
- 舊版
gh-copilot棄用公告:https://github.blog/changelog/2025-09-25-upcoming-deprecation-of-gh-copilot-cli-extension/ - 新版公開預覽公告:https://github.blog/changelog/2025-09-25-github-copilot-cli-is-now-in-public-preview/
- 新版 GA 公告:https://github.blog/changelog/2026-02-25-github-copilot-cli-is-now-generally-available/
gh copilot安裝導引公告:https://github.blog/changelog/2026-01-21-install-and-use-github-copilot-cli-directly-from-the-github-cli/