回復和 PR 管理
說明 Copilot CLI snapshot、雙 Esc、/undo、/rewind、驗證回復和 PR 審查鏈路。
Copilot CLI 能改檔案和執行命令,就必須能回復。GitHub 官方 rollback 頁面說明:互動式會話中,每次 prompt 開始時,Copilot CLI 會建立 workspace snapshot(工作區快照);如果結果不符合預期,可以回到某個 prompt 前的狀態。
回復不是補救小技巧,而是 CLI 工作流的安全底線。前提:儲存庫必須至少有一個 Git commit,且回復是整個工作區回到 snapshot——不只 Copilot 的改動,你自己的手動編輯也會一起被覆蓋。
閱讀目標:讀完本章,你應該能用 snapshot、雙 Esc、/undo 和 Git review 管理 Copilot CLI 改動。
1. Snapshot 怎麼工作
官方文件說明:
- 每次輸入 prompt 後,CLI 開始工作前會建立 workspace snapshot。
- 回復會把儲存庫恢復到所選 prompt 開始前的狀態。
- 可以雙擊
Esc開啟 rewind picker。 - 也可以用
/undo或/rewindslash command。 - 需要在有至少一個 commit 的 Git repository 中工作。
flowchart TD
Prompt["輸入 prompt"] --> Snapshot["建立 snapshot"]
Snapshot --> Work["Copilot 改檔案 / 跑命令"]
Work --> Review{"結果是否可接受?"}
Review -->|是| Keep["保留並測試"]
Review -->|否| Rewind["Esc Esc / /undo"]
Rewind --> Picker["選擇 snapshot"]
Picker --> Restore["恢復到 prompt 前狀態"]
Keep --> PR["commit / PR review"]
style Snapshot fill:#dbeafe,stroke:#2563eb,stroke-width:2px
style Rewind fill:#fee2e2,stroke:#dc2626,stroke-width:2px
style PR fill:#dcfce7,stroke:#16a34a,stroke-width:2px
2. 回復前必須知道的警告
官方 rollback 頁面給出兩個關鍵警告:
- Rewind 會恢復整個 workspace 到選中 snapshot 的狀態,撤回該 snapshot 後所有改動,不只撤回 Copilot 改動,也包括你的手動編輯和 shell command 產生的改動。
- Rewind 不能撤銷。回到某個 snapshot 後,該點之後的 snapshots 和 session history 會永久移除。
所以回復前先看:
git status
git diff確認沒有你要保留的手動改動。
3. 雙 Esc 回復
當 Copilot 已經完成一個 prompt 的響應,且 input area 為空時:
- 快速按兩次
Esc。 - 開啟 rewind picker。
- 選擇要回到的 snapshot。
- 儲存庫恢復到該 prompt 開始前。
- 選中的 prompt 會重新出現在 input area,你可以改寫後重試。
如果 input area 裡有文字,雙 Esc 可能先清空輸入,不一定開啟 picker。
4. /undo 和 /rewind
/undo 和 /rewind 是開啟 rewind picker 的 slash command。它們和雙 Esc 結果相同,適合你不想依賴快捷鍵時使用。
推薦流程:
/undo- 選 snapshot。
git statusgit diff- 重新縮小 prompt。
5. 回復驗證
回復後不能只看 CLI 提示。至少檢查:
git status是否回到預期。- 被刪除或新增的檔案是否符合預期。
- 測試是否需要重跑。
- 後續 prompt 是否縮小了範圍。
- 如果已有 PR,是否需要關閉、更新或說明回復。
6. PR 管理
Copilot CLI 可以幫助管理 PR,但 PR 仍然要按普通工程流程處理:
- CLI 可以建立或修改 PR。
/delegate會開啟 draft PR。- PR summary 不是 review。
- Reviewer 仍要看 diff、tests、workflow 和許可權變化。
- 不合格分支可以關閉 PR 或人工接管。
深讀:為什麼 Git commit 是 rollback 前提
官方文件要求儲存庫至少有一個 commit,因為 CLI 用 Git operations 跟蹤和恢復 workspace state。沒有 Git 基線,回復就缺少明確恢復點。
所以在新專案裡使用 CLI 寫入前,先建立初始 commit,比事後手動收拾安全得多。
本章自檢
完成本章後,用這 4 個問題檢查:
- 當前儲存庫是否至少有一個 commit?
- 回復前是否確認沒有需要保留的手動改動?
- 回復後是否用
git status和git diff驗證? - PR 是否保留了 reviewer 能理解的變更、測試和回復記錄?
透過標準:CLI 任務失敗時,你能回到已知狀態,而不是在髒工作區裡繼續疊加 prompt。
官方來源
- Rolling back changes made during a GitHub Copilot CLI session —— 官方 rollback 頁面。
- About GitHub Copilot CLI —— 官方 CLI 概念頁,覆蓋安全和 PR 用例。
- Delegating tasks to Copilot —— 官方委派任務頁,覆蓋 draft PR 和 agent session 鏈路。