6 6
7> 使用 Claude Code 探索程式碼庫、修復錯誤、重構、測試和其他日常任務的逐步指南。7> 使用 Claude Code 探索程式碼庫、修復錯誤、重構、測試和其他日常任務的逐步指南。
8 8
9本頁涵蓋日常開發的實用工作流程:探索陌生程式碼、除錯、重構、編寫測試、建立 PR 和管理會話。每個部分都包含您可以根據自己的專案調整的範例提示。如需更高層級的模式和提示,請參閱[最佳實踐](/zh-TW/best-practices)。9本頁涵蓋日常開發的簡短食譜。如需更高層級的提示和背景資訊管理指導,請參閱[最佳實踐](/zh-TW/best-practices)。
10 10
11## 了解新的程式碼庫11本頁涵蓋:
12 12
13### 快速取得程式碼庫概覽13* [提示食譜](#prompt-recipes),用於探索程式碼、修復錯誤、重構、測試、PR 和文件
14* [繼續之前的對話](#resume-previous-conversations),以便任務可以跨越多個會話
15* [使用 worktrees 執行平行會話](#run-parallel-sessions-with-worktrees),以便並行編輯不會衝突
16* [編輯前規劃](#plan-before-editing),以在變更觸及磁碟前檢查變更
17* [將研究委派給 subagents](#delegate-research-to-subagents),以保持主要背景資訊清潔
18* [將 Claude 管道輸入指令碼](#pipe-claude-into-scripts),用於 CI 和批次處理
19
20## 提示食譜
21
22這些是日常任務的提示模式,例如探索陌生程式碼、除錯、重構、編寫測試和建立 PR。每個都可在任何 Claude Code 介面中工作;根據您的專案調整措辭。
23
24### 了解新的程式碼庫
25
26#### 快速取得程式碼庫概覽
14 27
15假設您剛加入一個新專案,需要快速了解其結構。28假設您剛加入一個新專案,需要快速了解其結構。
16 29
56 * 要求提供專案特定術語的詞彙表69 * 要求提供專案特定術語的詞彙表
57</Tip>70</Tip>
58 71
59### 尋找相關程式碼72#### 尋找相關程式碼
60 73
61假設您需要找到與特定功能相關的程式碼。74假設您需要找到與特定功能或功能相關的程式碼。
62 75
63<Steps>76<Steps>
64 <Step title="要求 Claude 尋找相關檔案">77 <Step title="要求 Claude 尋找相關檔案">
90 103
91***104***
92 105
93## 有效地修復錯誤106### 有效地修復錯誤
94 107
95假設您遇到了錯誤訊息,需要找到並修復其來源。108假設您遇到了錯誤訊息,需要找到並修復其來源。
96 109
124 137
125***138***
126 139
127## 重構程式碼140### 重構程式碼
128 141
129假設您需要更新舊程式碼以使用現代模式和實踐。142假設您需要更新舊程式碼以使用現代模式和實踐。
130 143
164 177
165***178***
166 179
167## 使用專門的 subagents180### 使用測試
168
169假設您想使用專門的 AI subagents 來更有效地處理特定任務。
170
171<Steps>
172 <Step title="檢視可用的 subagents">
173 ```text theme={null}
174 /agents
175 ```
176
177 這會顯示所有可用的 subagents 並讓您建立新的。
178 </Step>
179
180 <Step title="自動使用 subagents">
181 Claude Code 會自動將適當的任務委派給專門的 subagents:
182
183 ```text theme={null}
184 review my recent code changes for security issues
185 ```
186
187 ```text theme={null}
188 run all tests and fix any failures
189 ```
190 </Step>
191
192 <Step title="明確要求特定的 subagents">
193 ```text theme={null}
194 use the code-reviewer subagent to check the auth module
195 ```
196
197 ```text theme={null}
198 have the debugger subagent investigate why users can't log in
199 ```
200 </Step>
201
202 <Step title="為您的工作流程建立自訂 subagents">
203 ```text theme={null}
204 /agents
205 ```
206
207 然後選擇「建立新 subagent」並按照提示定義:
208
209 * 描述 subagent 目的的唯一識別碼(例如 `code-reviewer`、`api-designer`)。
210 * Claude 何時應使用此代理
211 * 它可以存取哪些工具
212 * 描述代理角色和行為的系統提示
213 </Step>
214</Steps>
215
216<Tip>
217 提示:
218
219 * 在 `.claude/agents/` 中建立專案特定的 subagents 以供團隊共享
220 * 使用描述性的 `description` 欄位來啟用自動委派
221 * 限制工具存取權限為每個 subagent 實際需要的內容
222 * 查看[subagents 文件](/zh-TW/sub-agents)以取得詳細範例
223</Tip>
224
225***
226
227## 使用 Plan Mode 進行安全的程式碼分析
228
229Plan Mode 指示 Claude 通過使用唯讀操作分析程式碼庫來建立計畫,非常適合探索程式碼庫、規劃複雜變更或安全地檢查程式碼。在 Plan Mode 中,Claude 使用 [`AskUserQuestion`](/zh-TW/tools-reference) 在提出計畫之前收集需求並澄清您的目標。
230
231### 何時使用 Plan Mode
232
233* **多步驟實現**:當您的功能需要編輯許多檔案時
234* **程式碼探索**:當您想在進行任何變更之前徹底研究程式碼庫時
235* **互動式開發**:當您想與 Claude 迭代方向時
236
237### 如何使用 Plan Mode
238
239**在會話期間開啟 Plan Mode**
240
241您可以在會話期間使用 **Shift+Tab** 循環切換權限模式。
242
243如果您處於 Normal Mode,**Shift+Tab** 首先切換到 Auto-Accept Mode,在終端底部顯示 `⏵⏵ accept edits on`。隨後的 **Shift+Tab** 將切換到 Plan Mode,顯示 `⏸ plan mode on`。
244
245**在 Plan Mode 中啟動新會話**
246
247要在 Plan Mode 中啟動新會話,請使用 `--permission-mode plan` 標誌:
248
249```bash theme={null}
250claude --permission-mode plan
251```
252
253**在 Plan Mode 中執行「無頭」查詢**
254
255您也可以使用 `-p` 直接在 Plan Mode 中執行查詢(即在[「無頭模式」](/zh-TW/headless)中):
256
257```bash theme={null}
258claude --permission-mode plan -p "Analyze the authentication system and suggest improvements"
259```
260
261### 範例:規劃複雜的重構
262
263```bash theme={null}
264claude --permission-mode plan
265```
266
267```text theme={null}
268I need to refactor our authentication system to use OAuth2. Create a detailed migration plan.
269```
270
271Claude 分析當前實現並建立全面的計畫。使用後續問題進行細化:
272
273```text theme={null}
274What about backward compatibility?
275```
276
277```text theme={null}
278How should we handle database migration?
279```
280
281<Tip>按 `Ctrl+G` 在預設文字編輯器中開啟計畫,您可以在 Claude 繼續之前直接編輯它。</Tip>
282
283當您接受計畫時,Claude 會自動從計畫內容命名會話。名稱會出現在提示欄和會話選擇器中。如果您已經使用 `--name` 或 `/rename` 設定了名稱,接受計畫不會覆蓋它。
284
285### 將 Plan Mode 設定為預設值
286
287```json theme={null}
288// .claude/settings.json
289{
290 "permissions": {
291 "defaultMode": "plan"
292 }
293}
294```
295
296有關更多配置選項,請參閱[設定文件](/zh-TW/settings#available-settings)。
297
298***
299
300## 使用測試
301 181
302假設您需要為未涵蓋的程式碼新增測試。182假設您需要為未涵蓋的程式碼新增測試。
303 183
333 213
334***214***
335 215
336## 建立提取請求216### 建立提取請求
337 217
338您可以直接要求 Claude 建立提取請求(「為我的變更建立 pr」),或逐步引導 Claude 完成:218您可以直接要求 Claude 建立提取請求(「為我的變更建立 pr」),或逐步引導 Claude 完成:
339 219
357 </Step>237 </Step>
358</Steps>238</Steps>
359 239
360當您使用 `gh pr create` 建立 PR 時,會話會自動連結到該 PR。您稍後可以使用 `claude --from-pr <number>` 繼續。240當您使用 `gh pr create` 建立 PR 時,會話會自動連結到該 PR。要稍後返回它,請執行 `claude --from-pr <number>` 或將 PR URL 貼到[`/resume` 選擇器](/zh-TW/sessions#use-the-session-picker)搜尋中。
361 241
362<Tip>242<Tip>
363 在提交前檢查 Claude 產生的 PR,並要求 Claude 突出顯示潛在的風險或考慮事項。243 在提交前檢查 Claude 產生的 PR,並要求 Claude 突出顯示潛在的風險或考慮事項。
364</Tip>244</Tip>
365 245
366## 處理文件246### 處理文件
367 247
368假設您需要為程式碼新增或更新文件。248假設您需要為程式碼新增或更新文件。
369 249
403 283
404***284***
405 285
406## 在筆記和非程式碼資料夾中工作286### 在筆記和非程式碼資料夾中工作
407 287
408Claude Code 可在任何目錄中工作。在筆記保管庫、文件資料夾或任何 markdown 檔案集合中執行它,以搜尋、編輯和重新組織內容,就像您處理程式碼一樣。288Claude Code 可在任何目錄中工作。在筆記保管庫、文件資料夾或任何 markdown 檔案集合中執行它,以搜尋、編輯和重新組織內容,就像您處理程式碼一樣。
409 289
411 291
412***292***
413 293
414## 使用影像294### 使用影像
415 295
416假設您需要在程式碼庫中使用影像,並希望 Claude 幫助分析影像內容。296假設您需要在程式碼庫中使用影像,並希望 Claude 幫助分析影像內容。
417 297
471 351
472***352***
473 353
474## 參考檔案和目錄354### 參考檔案和目錄
475 355
476使用 @ 快速包含檔案或目錄,無需等待 Claude 讀取它們。356使用 @ 快速包含檔案或目錄,無需等待 Claude 讀取它們。
477 357
512 392
513***393***
514 394
515## 使用擴展思考(Thinking Mode)395### 按排程執行 Claude
516
517[擴展思考](https://platform.claude.com/docs/zh-TW/build-with-claude/extended-thinking)預設啟用,為 Claude 提供空間在回應前逐步推理複雜問題。此推理在詳細模式中可見,您可以使用 `Ctrl+O` 切換。在擴展思考期間,進度提示會出現在指示器下方,例如「still thinking」和「almost done thinking」,以指示 Claude 正在積極工作。
518
519此外,[支援努力級別的模型](/zh-TW/model-config#adjust-effort-level)使用自適應推理:不是固定的思考令牌預算,而是模型根據您的努力級別設定和手邊的任務動態決定是否以及如何思考。自適應推理讓 Claude 對日常提示回應更快,並為受益於深度思考的步驟保留更深層的思考。
520
521擴展思考對於複雜的架構決策、具有挑戰性的錯誤、多步驟實現規劃和評估不同方法之間的權衡特別有價值。
522
523<Note>
524 「think」、「think hard」和「think more」等短語被解釋為常規提示指令,不分配思考令牌。
525</Note>
526
527### 配置 Thinking Mode
528
529思考預設啟用,但您可以調整或禁用它。
530
531| 範圍 | 如何配置 | 詳細資訊 |
532| -------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
533| **努力級別** | 執行 `/effort`、在 `/model` 中調整,或設定 [`CLAUDE_CODE_EFFORT_LEVEL`](/zh-TW/env-vars) | 控制[支援的模型](/zh-TW/model-config#adjust-effort-level)上的思考深度 |
534| **`ultrathink` 關鍵字** | 在提示中的任何地方包含「ultrathink」 | 在該輪添加上下文指令,告訴模型進行更多推理。不會改變努力級別本身;請參閱[調整努力級別](/zh-TW/model-config#adjust-effort-level)以了解相關資訊 |
535| **切換快捷鍵** | 按 `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切換當前會話的思考開/關(所有模型)。可能需要[終端配置](/zh-TW/terminal-config)來啟用 Option 鍵快捷鍵 |
536| **全域預設值** | 使用 `/config` 切換 Thinking Mode | 在所有專案中設定預設值(所有模型)。<br />儲存為 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |
537| **限制令牌預算** | 設定 [`MAX_THINKING_TOKENS`](/zh-TW/env-vars) 環境變數 | 將思考預算限制為特定數量的令牌。在支援自適應推理的模型上,只有設定為 `0` 時才適用,除非禁用自適應推理。範例:`export MAX_THINKING_TOKENS=10000` |
538
539要檢視 Claude 的思考過程,按 `Ctrl+O` 切換詳細模式,並查看顯示為灰色斜體文字的內部推理。
540
541### 擴展思考如何運作
542
543擴展思考控制 Claude 在回應前執行多少內部推理。更多思考提供更多空間來探索解決方案、分析邊界情況和自我糾正錯誤。
544
545在[支援努力級別的模型](/zh-TW/model-config#adjust-effort-level)上,思考使用自適應推理:模型根據您選擇的努力級別動態分配思考令牌。這是調整速度和推理深度之間權衡的推薦方式。如果您想讓 Claude 比您的努力級別會產生的更多或更少地思考,您也可以直接在提示中或在 `CLAUDE.md` 中說明。
546
547使用較舊的模型,思考使用固定令牌預算,從您的輸出分配中提取。預算因模型而異;有關詳細資訊,請參閱 [`MAX_THINKING_TOKENS`](/zh-TW/env-vars)。您可以使用該環境變數限制預算,或通過 `/config` 或 `Option+T`/`Alt+T` 切換完全禁用思考。
548
549在支援自適應推理的模型上,`MAX_THINKING_TOKENS` 只在設定為 `0` 以禁用思考時適用,或當 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 將模型恢復為固定預算時適用。`CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 僅適用於 Opus 4.6 和 Sonnet 4.6。Opus 4.7 始終使用自適應推理,不支援固定思考預算。請參閱[環境變數](/zh-TW/env-vars)。
550
551<Warning>
552 您需要為所有使用的思考令牌付費,即使思考摘要被編輯。在互動模式中,思考預設顯示為摺疊的存根。在 `settings.json` 中設定 `showThinkingSummaries: true` 以顯示完整摘要。
553</Warning>
554
555***
556
557## 繼續之前的對話
558
559啟動 Claude Code 時,您可以繼續之前的會話:
560
561* `claude --continue` 繼續當前目錄中最近的對話
562* `claude --resume` 開啟對話選擇器或按名稱繼續
563* `claude --from-pr 123` 繼續連結到特定提取請求的會話
564
565從活躍會話內,使用 `/resume` 切換到不同的對話。
566
567當選定的會話足夠舊且足夠大,以至於重新閱讀它會消耗您使用限額的大部分時,`--resume`、`--continue` 和 `/resume` 會提供從摘要繼續而不是載入完整記錄的選項。此提示在 Amazon Bedrock、Google Cloud Vertex AI 或 Microsoft Foundry 上不可用。
568
569會話按專案目錄儲存。預設情況下,`/resume` 選擇器顯示來自當前 worktree 的互動式會話,帶有快捷鍵以擴展清單到其他 worktrees 或專案、搜尋、預覽和重新命名。有關完整的快捷鍵參考,請參閱下面的[使用會話選擇器](#use-the-session-picker)。
570
571當您從同一儲存庫的另一個 worktree 選擇會話時,Claude Code 會直接繼續它,無需您先切換目錄。從不相關的專案選擇會話會將 `cd` 和繼續命令複製到您的剪貼簿。
572
573按名稱繼續會在當前儲存庫及其 worktrees 中解析。`claude --resume <name>` 和 `/resume <name>` 都會尋找精確匹配並直接繼續它,即使會話位於不同的 worktree 中。
574
575當名稱不明確時,`claude --resume <name>` 會開啟選擇器,並將名稱預先填充為搜尋詞。`/resume <name>` 從會話內報告錯誤,所以執行 `/resume` 不帶引數以開啟選擇器並選擇。
576
577由 `claude -p` 或 SDK 調用建立的會話不會出現在選擇器中,但您仍然可以通過將其會話 ID 直接傳遞給 `claude --resume <session-id>` 來繼續。
578
579### 命名您的會話
580
581給會話起描述性名稱以便稍後找到它們。這是在處理多個任務或功能時的最佳實踐。
582
583<Steps>
584 <Step title="命名會話">
585 在啟動時使用 `-n` 命名會話:
586
587 ```bash theme={null}
588 claude -n auth-refactor
589 ```
590
591 或在會話期間使用 `/rename`,這也會在提示欄上顯示名稱:
592
593 ```text theme={null}
594 /rename auth-refactor
595 ```
596
597 您也可以從選擇器重新命名任何會話:執行 `/resume`,導航到會話,然後按 `Ctrl+R`。
598 </Step>
599
600 <Step title="稍後按名稱繼續">
601 從命令列:
602
603 ```bash theme={null}
604 claude --resume auth-refactor
605 ```
606
607 或從活躍會話內:
608
609 ```text theme={null}
610 /resume auth-refactor
611 ```
612 </Step>
613</Steps>
614
615### 使用會話選擇器
616
617`/resume` 命令(或 `claude --resume` 不帶引數)開啟具有以下功能的互動式會話選擇器:
618
619**選擇器中的快捷鍵:**
620
621| 快捷鍵 | 動作 |
622| :----------------------- | :------------------------------------------------------------- |
623| `↑` / `↓` | 在會話之間導航 |
624| `→` / `←` | 展開或摺疊分組的會話 |
625| `Enter` | 選擇並繼續突出顯示的會話 |
626| `Space` | 預覽會話內容。`Ctrl+V` 在不將其捕獲為貼上的終端上也有效 |
627| `Ctrl+R` | 重新命名突出顯示的會話 |
628| `/` 或除 `Space` 外的任何可列印字元 | 進入搜尋模式並篩選會話 |
629| `Ctrl+A` | 顯示此機器上所有專案的會話。再次按下以恢復當前儲存庫 |
630| `Ctrl+W` | 顯示當前儲存庫所有 worktrees 的會話。再次按下以恢復當前 worktree。僅在多 worktree 儲存庫中顯示 |
631| `Ctrl+B` | 篩選為來自您當前 git 分支的會話。再次按下以顯示所有分支的會話 |
632| `Esc` | 退出選擇器或搜尋模式 |
633
634**會話組織:**
635
636選擇器顯示帶有有用中繼資料的會話:
637
638* 會話名稱(如果設定),否則對話摘要或第一個使用者提示
639* 自上次活動以來經過的時間
640* 訊息計數
641* Git 分支(如果適用)
642* 專案路徑,在使用 `Ctrl+A` 擴展到所有專案後顯示
643
644分叉的會話(使用 `/branch`、`/rewind` 或 `--fork-session` 建立)在其根會話下分組,使找到相關對話更容易。
645
646<Tip>
647 提示:
648
649 * **盡早命名會話**:在開始處理不同任務時使用 `/rename`——稍後找到「payment-integration」比「explain this function」容易得多
650 * 使用 `--continue` 快速存取當前目錄中最近的對話
651 * 當您知道需要哪個會話時,使用 `--resume session-name`
652 * 當您需要瀏覽和選擇時,使用 `--resume`(不帶名稱)
653 * 對於指令碼,使用 `claude --continue --print "prompt"` 以非互動模式繼續
654 * 在選擇器中按 `Space` 在繼續前預覽會話
655 * 繼續的對話以與原始對話相同的模型和配置開始
656
657 它如何運作:
658
659 1. **對話儲存**:所有對話都自動在本地儲存,包含完整的訊息歷史記錄
660 2. **訊息反序列化**:繼續時,整個訊息歷史記錄被恢復以保持背景資訊
661 3. **工具狀態**:來自之前對話的工具使用和結果被保留
662 4. **背景資訊恢復**:對話以所有先前背景資訊完整繼續
663</Tip>
664
665***
666
667## 使用 Git worktrees 執行平行 Claude Code 會話
668
669同時處理多個任務時,您需要每個 Claude 會話都有自己的程式碼庫副本,以便變更不會衝突。Git worktrees 通過建立單獨的工作目錄來解決此問題,每個目錄都有自己的檔案和分支,同時共享相同的儲存庫歷史記錄和遠端連接。這意味著您可以讓 Claude 在一個 worktree 中處理功能,同時在另一個 worktree 中修復錯誤,而不會相互干擾。
670
671使用 `--worktree`(`-w`)標誌建立隔離的 worktree 並在其中啟動 Claude。您傳遞的值成為 worktree 目錄名稱和分支名稱:
672
673```bash theme={null}
674# 在名為「feature-auth」的 worktree 中啟動 Claude
675# 建立 .claude/worktrees/feature-auth/ 和新分支
676claude --worktree feature-auth
677
678# 在單獨的 worktree 中啟動另一個會話
679claude --worktree bugfix-123
680```
681
682如果您省略名稱,Claude 會自動產生一個隨機名稱:
683
684```bash theme={null}
685# 自動產生名稱如「bright-running-fox」
686claude --worktree
687```
688
689Worktrees 建立在 `<repo>/.claude/worktrees/<name>` 並從預設遠端分支分支。worktree 分支命名為 `worktree-<name>`。
690
691預設遠端分支不可通過 Claude Code 標誌或設定配置。`origin/HEAD` 是儲存在您本地 `.git` 目錄中的參考,Git 在您複製時設定一次。如果儲存庫的預設分支稍後在 GitHub 或 GitLab 上變更,您的本地 `origin/HEAD` 會繼續指向舊的,worktrees 將從那裡分支。要重新同步您的本地參考與遠端目前認為的預設值:
692
693```bash theme={null}
694git remote set-head origin -a
695```
696
697這是一個標準 Git 命令,只更新您的本地 `.git` 目錄。遠端伺服器上沒有任何變更。如果您想 worktrees 基於特定分支而不是遠端的預設值,請使用 `git remote set-head origin your-branch-name` 明確設定它。
698
699為了完全控制 worktrees 的建立方式,包括為每次調用選擇不同的基礎,配置 [WorktreeCreate hook](/zh-TW/hooks#worktreecreate)。該 hook 完全取代 Claude Code 的預設 `git worktree` 邏輯,所以您可以從任何您需要的 ref 中取得和分支。
700
701您也可以在會話期間要求 Claude「在 worktree 中工作」或「啟動 worktree」,它會自動建立一個。
702
703### Subagent worktrees
704
705Subagents 也可以使用 worktree 隔離來並行工作而不會衝突。要求 Claude「為您的代理使用 worktrees」或在[自訂 subagent](/zh-TW/sub-agents#supported-frontmatter-fields) 中配置它,方法是在代理的 frontmatter 中新增 `isolation: worktree`。每個 subagent 都獲得自己的 worktree,在 subagent 完成而沒有變更時自動清理。
706
707### Worktree 清理
708
709當您退出 worktree 會話時,Claude 根據您是否進行了變更來處理清理:
710
711* **無變更**:worktree 及其分支會自動移除
712* **存在變更或提交**:Claude 提示您保留或移除 worktree。保留會保留目錄和分支,以便您稍後返回。移除會刪除 worktree 目錄及其分支,丟棄所有未提交的變更和提交
713
714Subagent worktrees 由於崩潰或中斷的平行執行而孤立的,一旦它們超過您的 [`cleanupPeriodDays`](/zh-TW/settings#available-settings) 設定,就會在啟動時自動移除,前提是它們沒有未提交的變更、沒有未追蹤的檔案且沒有未推送的提交。使用 `--worktree` 建立的 Worktrees 永遠不會被此掃描移除。
715
716要在 Claude 會話外清理 worktrees,請使用[手動 worktree 管理](#manage-worktrees-manually)。
717
718<Tip>
719 將 `.claude/worktrees/` 新增到您的 `.gitignore` 以防止 worktree 內容在主儲存庫中顯示為未追蹤的檔案。
720</Tip>
721
722### 複製 gitignored 檔案到 worktrees
723
724Git worktrees 是新鮮的簽出,所以它們不包含來自主儲存庫的未追蹤檔案,如 `.env` 或 `.env.local`。要在 Claude 建立 worktree 時自動複製這些檔案,請在專案根目錄新增 `.worktreeinclude` 檔案。
725
726該檔案使用 `.gitignore` 語法列出要複製的檔案。只有符合模式且也被 gitignored 的檔案才會被複製,所以追蹤的檔案永遠不會被複製。
727
728```text .worktreeinclude theme={null}
729.env
730.env.local
731config/secrets.json
732```
733
734這適用於使用 `--worktree` 建立的 worktrees、subagent worktrees 和[桌面應用](/zh-TW/desktop#work-in-parallel-with-sessions)中的平行會話。
735
736### 手動管理 worktrees
737
738為了更好地控制 worktree 位置和分支配置,直接使用 Git 建立 worktrees。當您需要簽出特定現有分支或將 worktree 放在儲存庫外時,這很有用。
739
740```bash theme={null}
741# 使用新分支建立 worktree
742git worktree add ../project-feature-a -b feature-a
743
744# 使用現有分支建立 worktree
745git worktree add ../project-bugfix bugfix-123
746
747# 在 worktree 中啟動 Claude
748cd ../project-feature-a && claude
749
750# 完成時清理
751git worktree list
752git worktree remove ../project-feature-a
753```
754
755在[官方 Git worktree 文件](https://git-scm.com/docs/git-worktree)中了解更多。
756
757<Tip>
758 記住根據您的專案設定在每個新 worktree 中初始化您的開發環境。根據您的堆疊,這可能包括執行依賴項安裝(`npm install`、`yarn`)、設定虛擬環境或遵循您的專案標準設定過程。
759</Tip>
760
761### 非 git 版本控制
762
763Worktree 隔離預設使用 git。對於其他版本控制系統(如 SVN、Perforce 或 Mercurial),配置 [WorktreeCreate 和 WorktreeRemove hooks](/zh-TW/hooks#worktreecreate) 以提供自訂 worktree 建立和清理邏輯。配置後,當您使用 `--worktree` 時,這些 hooks 會取代預設 git 行為,所以[`.worktreeinclude`](#copy-gitignored-files-to-worktrees) 不會被處理。改為在您的 hook 指令碼中複製任何本地配置檔案。
764
765對於具有共享任務和訊息的平行會話的自動協調,請參閱[代理團隊](/zh-TW/agent-teams)。
766
767***
768
769## 在 Claude 需要您注意時獲得通知
770
771當您啟動長時間執行的任務並切換到另一個視窗時,您可以設定桌面通知,以便在 Claude 完成或需要您的輸入時知道。這使用 `Notification` [hook 事件](/zh-TW/hooks-guide#get-notified-when-claude-needs-input),每當 Claude 等待權限、閒置並準備好新提示或完成身份驗證時觸發。
772
773<Steps>
774 <Step title="將 hook 新增到您的設定">
775 開啟 `~/.claude/settings.json` 並新增一個 `Notification` hook,該 hook 呼叫您平台的原生通知命令:
776
777 <Tabs>
778 <Tab title="macOS">
779 ```json theme={null}
780 {
781 "hooks": {
782 "Notification": [
783 {
784 "matcher": "",
785 "hooks": [
786 {
787 "type": "command",
788 "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
789 }
790 ]
791 }
792 ]
793 }
794 }
795 ```
796 </Tab>
797
798 <Tab title="Linux">
799 ```json theme={null}
800 {
801 "hooks": {
802 "Notification": [
803 {
804 "matcher": "",
805 "hooks": [
806 {
807 "type": "command",
808 "command": "notify-send 'Claude Code' 'Claude Code needs your attention'"
809 }
810 ]
811 }
812 ]
813 }
814 }
815 ```
816 </Tab>
817
818 <Tab title="Windows">
819 ```json theme={null}
820 {
821 "hooks": {
822 "Notification": [
823 {
824 "matcher": "",
825 "hooks": [
826 {
827 "type": "command",
828 "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""
829 }
830 ]
831 }
832 ]
833 }
834 }
835 ```
836 </Tab>
837 </Tabs>
838
839 如果您的設定檔已有 `hooks` 鍵,請將 `Notification` 項目合併到其中,而不是覆蓋。您也可以通過在 CLI 中描述您想要的內容來要求 Claude 為您編寫 hook。
840 </Step>
841
842 <Step title="可選地縮小匹配器範圍">
843 預設情況下,hook 在所有通知類型上觸發。要僅針對特定事件觸發,請將 `matcher` 欄位設定為以下值之一:
844
845 | 匹配器 | 觸發時機 |
846 | :--------------------- | :------------------ |
847 | `permission_prompt` | Claude 需要您批准工具使用 |
848 | `idle_prompt` | Claude 完成並等待您的下一個提示 |
849 | `auth_success` | 身份驗證完成 |
850 | `elicitation_dialog` | MCP 伺服器開啟引發表單 |
851 | `elicitation_complete` | MCP 引發表單已提交或關閉 |
852 | `elicitation_response` | MCP 引發回應已傳送回伺服器 |
853 </Step>
854
855 <Step title="驗證 hook">
856 輸入 `/hooks` 並選擇 `Notification` 以確認 hook 出現。選擇它會顯示將執行的命令。要端到端測試它,要求 Claude 執行需要權限的命令並切換離開終端,或要求 Claude 直接觸發通知。
857 </Step>
858</Steps>
859
860如需完整的事件架構和通知類型,請參閱[通知參考](/zh-TW/hooks#notification)。
861
862***
863
864## 將 Claude 用作 unix 風格的實用程式
865
866### 將 Claude 新增到您的驗證過程
867
868假設您想將 Claude Code 用作 linter 或程式碼審查者。
869
870**將 Claude 新增到您的建置指令碼:**
871
872```json theme={null}
873// package.json
874{
875 ...
876 "scripts": {
877 ...
878 "lint:claude": "claude -p 'you are a linter. please look at the changes vs. main and report any issues related to typos. report the filename and line number on one line, and a description of the issue on the second line. do not return any other text.'"
879 }
880}
881```
882
883<Tip>
884 提示:
885
886 * 在您的 CI/CD 管道中使用 Claude 進行自動程式碼審查
887 * 自訂提示以檢查與您的專案相關的特定問題
888 * 考慮為不同類型的驗證建立多個指令碼
889</Tip>
890
891### 管道進入、管道輸出
892
893假設您想將資料管道輸入 Claude,並以結構化格式取回資料。
894
895**通過 Claude 管道資料:**
896
897```bash theme={null}
898cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt
899```
900
901<Tip>
902 提示:
903
904 * 使用管道將 Claude 整合到現有 shell 指令碼中
905 * 與其他 Unix 工具結合以實現強大的工作流程
906 * 考慮使用 `--output-format` 以獲得結構化輸出
907</Tip>
908
909### 控制輸出格式
910
911假設您需要 Claude 的輸出採用特定格式,特別是在將 Claude Code 整合到指令碼或其他工具時。
912
913<Steps>
914 <Step title="使用文字格式(預設)">
915 ```bash theme={null}
916 cat data.txt | claude -p 'summarize this data' --output-format text > summary.txt
917 ```
918
919 這只輸出 Claude 的純文字回應(預設行為)。
920 </Step>
921
922 <Step title="使用 JSON 格式">
923 ```bash theme={null}
924 cat code.py | claude -p 'analyze this code for bugs' --output-format json > analysis.json
925 ```
926
927 這輸出包含中繼資料(包括成本和持續時間)的訊息的 JSON 陣列。
928 </Step>
929
930 <Step title="使用串流 JSON 格式">
931 ```bash theme={null}
932 cat log.txt | claude -p 'parse this log file for errors' --output-format stream-json
933 ```
934
935 這在 Claude 處理請求時實時輸出一系列 JSON 物件。每個訊息都是有效的 JSON 物件,但如果連接,整個輸出不是有效的 JSON。
936 </Step>
937</Steps>
938
939<Tip>
940 提示:
941
942 * 對於簡單整合(您只需要 Claude 的回應),使用 `--output-format text`
943 * 當您需要完整的對話日誌時,使用 `--output-format json`
944 * 對於每個對話輪次的實時輸出,使用 `--output-format stream-json`
945</Tip>
946
947***
948
949## 在排程上執行 Claude
950 396
951假設您想讓 Claude 自動定期處理任務,例如每天早上檢查開放 PR、每週審計依賴項或在夜間檢查 CI 失敗。397假設您想讓 Claude 自動定期處理任務,例如每天早上檢查開放 PR、每週審計依賴項或在夜間檢查 CI 失敗。
952 398
960| [`/loop`](/zh-TW/scheduled-tasks) | 當前 CLI 會話 | 會話開啟時的快速輪詢。任務在您開始新對話時停止;`--resume` 和 `--continue` 恢復未過期的任務。 |406| [`/loop`](/zh-TW/scheduled-tasks) | 當前 CLI 會話 | 會話開啟時的快速輪詢。任務在您開始新對話時停止;`--resume` 和 `--continue` 恢復未過期的任務。 |
961 407
962<Tip>408<Tip>
963 為排程任務編寫提示時,明確說明成功是什麼樣子以及如何處理結果。任務自主執行,所以它無法提出澄清問題。例如:'檢查標記為 `needs-review` 的開放 PR,對任何問題留下內聯評論,並在 `#eng-reviews` Slack 頻道中發佈摘要。'409 為排程任務編寫提示時,明確說明成功是什麼樣子以及如何處理結果。任務自主執行,所以它無法提出澄清問題。例如:「檢查標記為 `needs-review` 的開放 PR,對任何問題留下內聯評論,並在 `#eng-reviews` Slack 頻道中發佈摘要。」
964</Tip>410</Tip>
965 411
966***412***
967 413
968## 詢問 Claude 其功能414### 詢問 Claude 其功能
969 415
970Claude 內建存取其文件,可以回答有關其自身功能和限制的問題。416Claude 內建存取其文件,可以回答有關其自身功能和限制的問題。
971 417
972### 範例問題418#### 範例問題
973 419
974```text theme={null}420```text theme={null}
975can Claude Code create pull requests?421can Claude Code create pull requests?
1009 455
1010***456***
1011 457
458## 繼續之前的對話
459
460當任務跨越多個會話時,從您停止的地方繼續,而不是重新解釋背景資訊。Claude Code 在本地儲存每個對話。
461
462```bash theme={null}
463claude --continue
464```
465
466這會繼續當前目錄中最近的會話;如果還沒有,它會列印 `No conversation found to continue` 並退出。使用 `claude --resume` 從清單中選擇,或從執行中的會話內使用 `/resume`。有關命名、分支和完整選擇器參考,請參閱[管理會話](/zh-TW/sessions)。
467
468## 使用 worktrees 執行平行會話
469
470在一個終端中處理功能,同時 Claude 在另一個終端中修復錯誤,而不會編輯衝突。每個 worktree 是其自己分支上的單獨簽出。
471
472```bash theme={null}
473claude --worktree feature-auth
474```
475
476在第二個終端中使用不同的名稱執行相同的命令以啟動隔離的平行會話。有關清理、`.worktreeinclude` 和非 git VCS 支援,請參閱 [Worktrees](/zh-TW/worktrees)。要從一個螢幕而不是單獨的終端監視平行會話,請參閱[背景代理](/zh-TW/agent-view)。
477
478## 編輯前規劃
479
480對於您想在變更觸及磁碟前檢查的變更,切換到 plan mode。Claude 讀取檔案並提出計畫,但在您批准前不進行編輯。
481
482```bash theme={null}
483claude --permission-mode plan
484```
485
486您也可以在會話期間按 `Shift+Tab` 切換到 plan mode。有關批准流程和在文字編輯器中編輯計畫,請參閱 [Plan mode](/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。
487
488## 將研究委派給 subagents
489
490探索大型程式碼庫會用檔案讀取填滿您的背景資訊。委派探索,以便只有發現結果返回。
491
492```text theme={null}
493use a subagent to investigate how our auth system handles token refresh
494```
495
496subagent 在其自己的背景資訊視窗中讀取檔案並報告摘要。有關定義具有自己工具和提示的自訂代理,請參閱 [Subagents](/zh-TW/sub-agents)。
497
498## 將 Claude 管道輸入指令碼
499
500以非互動方式執行 Claude,用於 CI、提交前 hooks 或批次處理。Stdin 和 stdout 像任何 Unix 工具一樣工作。
501
502```bash theme={null}
503git log --oneline -20 | claude -p "summarize these recent commits"
504```
505
506有關輸出格式、權限標誌和扇出模式,請參閱[非互動模式](/zh-TW/headless)。
507
1012## 後續步驟508## 後續步驟
1013 509
1014<CardGroup cols={2}>510<CardGroup cols={2}>
1016 從 Claude Code 中獲得最大收益的模式512 從 Claude Code 中獲得最大收益的模式
1017 </Card>513 </Card>
1018 514
1019 <Card title="Claude Code 如何運作" icon="gear" href="/zh-TW/how-claude-code-works">515 <Card title="管理會話" icon="rotate-left" href="/zh-TW/sessions">
1020 了解代理迴圈和背景資訊管理516 繼續、命名和分支對話
1021 </Card>517 </Card>
1022 518
1023 <Card title="擴展 Claude Code" icon="puzzle-piece" href="/zh-TW/features-overview">519 <Card title="Worktrees" icon="code-branch" href="/zh-TW/worktrees">
1024 新增 skills、hooks、MCP、subagents 和外掛520 執行隔離的平行會話
1025 </Card>521 </Card>
1026 522
1027 <Card title="參考實現" icon="code" href="https://github.com/anthropics/claude-code/tree/main/.devcontainer">523 <Card title="擴展 Claude Code" icon="puzzle-piece" href="/zh-TW/features-overview">
1028 複製開發容器參考實現524 新增 skills、hooks、MCP、subagents 和外掛
1029 </Card>525 </Card>
1030</CardGroup>526</CardGroup>