本指南提供了使用 Claude Code 进行常见工作流程的分步教程。每个教程都包含清晰的说明、示例命令和最佳实践,帮助您充分利用 Claude Code。

目录

继续之前的对话

无缝继续您的工作

使用时机: 您一直在使用 Claude Code 处理任务,需要在后续会话中继续之前的工作。

Claude Code 提供两个选项来继续之前的对话:

  • --continue 自动继续最近的对话
  • --resume 显示对话选择器
1

继续最近的对话

claude --continue

这会立即恢复您最近的对话,无需任何提示。

2

在非交互模式下继续

claude --continue --print "继续我的任务"

在非交互模式下使用 --print--continue 来恢复最近的对话,非常适合脚本或自动化。

3

显示对话选择器

claude --resume

这会显示一个交互式对话选择器,显示:

  • 对话开始时间
  • 初始提示或对话摘要
  • 消息数量

使用方向键导航并按 Enter 选择对话。

工作原理:

  1. 对话存储:所有对话都会自动保存在本地,包含完整的消息历史记录
  2. 消息反序列化:恢复时,整个消息历史记录都会被还原以维持上下文
  3. 工具状态:保留之前对话中的工具使用和结果
  4. 上下文恢复:对话恢复时保持所有之前的上下文不变

提示:

  • 对话历史记录存储在您的本地机器上
  • 使用 --continue 快速访问最近的对话
  • 当需要选择特定的过去对话时使用 --resume
  • 恢复时,您将看到完整的对话历史记录后再继续
  • 恢复的对话使用与原始对话相同的模型和配置

示例:

# 继续最近的对话
claude --continue

# 继续最近的对话并指定提示
claude --continue --print "显示我们的进度"

# 显示对话选择器
claude --resume

# 在非交互模式下继续最近的对话
claude --continue --print "再次运行测试"

理解新代码库

快速了解代码库概况

使用时机: 您刚加入一个新项目,需要快速了解其结构。

1

导航到项目根目录

cd /path/to/project 
2

启动 Claude Code

claude 
3

请求高层概述

> 给我这个代码库的概述
4

深入了解具体组件

> 解释这里使用的主要架构模式
> 主要的数据模型有哪些?
> 身份验证是如何处理的?

提示:

  • 从广泛的问题开始,然后缩小到具体领域
  • 询问项目中使用的编码约定和模式
  • 请求项目特定术语的词汇表

查找相关代码

使用时机: 您需要定位与特定功能相关的代码。

1

让 Claude 查找相关文件

> 找到处理用户身份验证的文件
2

了解组件之间的交互

> 这些身份验证文件是如何协同工作的?
3

理解执行流程

> 追踪从前端到数据库的登录过程

提示:

  • 明确说明您要查找的内容
  • 使用项目中的领域语言

高效修复错误

诊断错误消息

使用时机: 您遇到了错误消息,需要找到并修复其来源。

1

与 Claude 分享错误

> 我在运行 npm test 时看到一个错误
2

请求修复建议

> 建议几种方法来修复 user.ts 中的 @ts-ignore
3

应用修复

> 更新 user.ts 以添加您建议的空值检查

提示:

  • 告诉 Claude 重现问题的命令并获取堆栈跟踪
  • 提及重现错误的步骤
  • 让 Claude 知道错误是间歇性的还是持续性的

重构代码

现代化遗留代码

使用时机: 您需要更新旧代码以使用现代模式和实践。

1

识别需要重构的遗留代码

> 在我们的代码库中查找已弃用的 API 使用
2

获取重构建议

> 建议如何重构 utils.js 以使用现代 JavaScript 特性
3

安全地应用更改

> 重构 utils.js 以使用 ES2024 特性,同时保持相同的行为
4

验证重构

> 运行重构代码的测试

提示:

  • 请 Claude 解释现代方法的好处
  • 在需要时请求保持向后兼容性
  • 以小的、可测试的增量进行重构

处理测试

添加测试覆盖

使用时机: 您需要为未覆盖的代码添加测试。

1

识别未测试的代码

> 找出 NotificationsService.swift 中没有测试覆盖的函数
2

生成测试框架

> 为通知服务添加测试
3

添加有意义的测试用例

> 为通知服务添加边界条件的测试用例
4

运行和验证测试

> 运行新测试并修复任何失败

提示:

  • 请求覆盖边界情况和错误条件的测试
  • 在适当时请求单元测试和集成测试
  • 让 Claude 解释测试策略

创建拉取请求

生成全面的 PR

使用时机: 您需要为您的更改创建一个文档完善的拉取请求。

1

总结您的更改

> 总结我对身份验证模块所做的更改
2

使用 Claude 生成 PR

> 创建一个 pr
3

审查和完善

> 用更多关于安全改进的上下文来增强 PR 描述
4

添加测试详情

> 添加关于这些更改如何测试的信息

提示:

  • 直接要求 Claude 为您创建 PR
  • 在提交前审查 Claude 生成的 PR
  • 请 Claude 突出显示潜在风险或考虑事项

处理文档

生成代码文档

使用时机: 您需要为代码添加或更新文档。

1

识别未文档化的代码

> 在身份验证模块中查找没有适当 JSDoc 注释的函数
2

生成文档

> 为 auth.js 中未文档化的函数添加 JSDoc 注释
3

审查和增强

> 用更多上下文和示例改进生成的文档
4

验证文档

> 检查文档是否符合我们的项目标准

提示:

  • 指定您想要的文档样式(JSDoc、docstrings 等)
  • 在文档中请求示例
  • 请求公共 API、接口和复杂逻辑的文档

处理图像

分析图像和截图

使用时机: 您需要处理代码库中的图像或获取 Claude 的帮助分析图像内容。

1

将图像添加到对话中

您可以使用以下任何方法:

  1. 将图像拖放到 Claude Code 窗口中
  2. 复制图像并使用 cmd+v(在 Mac 上)将其粘贴到 CLI 中
  3. 提供图像路径 claude “分析这个图像:/path/to/your/image.png”
2

让 Claude 分析图像

> 这个图像显示了什么?
> 描述这个截图中的 UI 元素
> 这个图表中有任何问题的元素吗?
3

使用图像作为上下文

> 这是错误的截图。是什么导致了它?
> 这是我们当前的数据库架构。我们应该如何修改它以适应新功能?
4

从视觉内容获取代码建议

> 生成 CSS 以匹配这个设计模型
> 什么 HTML 结构可以重新创建这个组件?

提示:

  • 当文本描述不清晰或繁琐时使用图像
  • 包含错误、UI 设计或图表的截图以获得更好的上下文
  • 您可以在一个对话中处理多个图像
  • 图像分析适用于图表、截图、模型等

使用扩展思维

利用 Claude 的扩展思维处理复杂任务

使用时机: 当处理复杂的架构决策、具有挑战性的错误或需要深入推理的多步骤实现规划时。

1

提供上下文并让 Claude 思考

> 我需要使用 OAuth2 为我们的 API 实现一个新的身份验证系统。深入思考在我们的代码库中实现这一点的最佳方法。

Claude 将从您的代码库收集相关信息并使用扩展思维,这将在界面中可见。

2

通过后续提示完善思考

> 思考这种方法中的潜在安全漏洞
> 更深入地思考我们应该处理的边界情况

如何最大限度地利用扩展思维的提示:

扩展思维最适用于复杂任务,如:

  • 规划复杂的架构更改
  • 调试复杂问题
  • 创建新功能的实现计划
  • 理解复杂的代码库
  • 评估不同方法之间的权衡

提示思考的方式会导致不同程度的思考深度:

  • “think” 触发基本扩展思维
  • 加强短语如 “think more”、“think a lot”、“think harder” 或 “think longer” 触发更深入的思考

有关更多扩展思维提示技巧,请参见扩展思维提示

Claude 将在响应上方以斜体灰色文本显示其思考过程。


设置项目记忆

创建有效的 CLAUDE.md 文件

使用时机: 您想要设置一个 CLAUDE.md 文件来存储重要的项目信息、约定和常用命令。

1

为您的代码库引导 CLAUDE.md

> /init 

提示:

  • 包含常用命令(构建、测试、lint)以避免重复搜索
  • 记录代码风格偏好和命名约定
  • 添加特定于您项目的重要架构模式
  • CLAUDE.md 记忆可用于与团队共享的说明和您的个人偏好。有关更多详细信息,请参见管理 Claude 的记忆

设置模型上下文协议 (MCP)

模型上下文协议 (MCP) 是一个开放协议,使 LLM 能够访问外部工具和数据源。有关更多详细信息,请参见 MCP 文档

使用第三方 MCP 服务器需要您自担风险。确保您信任 MCP 服务器,对于与互联网通信的 MCP 服务器要特别小心,因为这些可能会使您面临提示注入风险。

配置 MCP 服务器

使用时机: 您想要通过使用模型上下文协议连接到专门的工具和外部服务器来增强 Claude 的功能。

1

添加 MCP Stdio 服务器

# 基本语法
claude mcp add <name> <command> [args...]

# 示例:添加本地服务器
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2
2

添加 MCP SSE 服务器

# 基本语法
claude mcp add --transport sse <name> <url>

# 示例:添加 SSE 服务器
claude mcp add --transport sse sse-server https://example.com/sse-endpoint
3

管理您的 MCP 服务器

# 列出所有配置的服务器
claude mcp list

# 获取特定服务器的详细信息
claude mcp get my-server

# 移除服务器
claude mcp remove my-server

提示:

  • 使用 -s--scope 标志指定配置存储位置:
    • local(默认):仅在当前项目中对您可用(在旧版本中称为 project
    • project:通过 .mcp.json 文件与项目中的所有人共享
    • user:在所有项目中对您可用(在旧版本中称为 global
  • 使用 -e--env 标志设置环境变量(例如,-e KEY=value
  • 使用 MCP_TIMEOUT 环境变量配置 MCP 服务器启动超时(例如,MCP_TIMEOUT=10000 claude 设置 10 秒超时)
  • 随时使用 /mcp 命令检查 MCP 服务器状态
  • MCP 遵循客户端-服务器架构,其中 Claude Code(客户端)可以连接到多个专门的服务器

理解 MCP 服务器作用域

使用时机: 您想要了解不同的 MCP 作用域如何工作以及如何与团队共享服务器。

1

本地作用域 MCP 服务器

默认作用域(local)将 MCP 服务器配置存储在您的项目特定用户设置中。这些服务器仅在您在当前项目工作时对您可用。

# 添加本地作用域服务器(默认)
claude mcp add my-private-server /path/to/server

# 显式指定本地作用域
claude mcp add my-private-server -s local /path/to/server
2

项目作用域 MCP 服务器(.mcp.json)

项目作用域服务器存储在项目根目录的 .mcp.json 文件中。此文件应检入版本控制以与团队共享服务器。

# 添加项目作用域服务器
claude mcp add shared-server -s project /path/to/server

这将创建或更新具有以下结构的 .mcp.json 文件:

{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}
3

用户作用域 MCP 服务器

用户作用域服务器在您机器上的所有项目中都可用,并且对您是私有的。

# 添加用户服务器
claude mcp add my-user-server -s user /path/to/server

提示:

  • 本地作用域服务器优先于具有相同名称的项目作用域和用户作用域服务器
  • 项目作用域服务器(在 .mcp.json 中)优先于具有相同名称的用户作用域服务器
  • 在使用来自 .mcp.json 的项目作用域服务器之前,Claude Code 会提示您批准它们以确保安全
  • .mcp.json 文件旨在检入版本控制以与团队共享 MCP 服务器
  • 项目作用域服务器使团队中的每个人都能轻松访问相同的 MCP 工具
  • 如果您需要重置对启用或禁用哪些项目作用域服务器的选择,请使用 claude mcp reset-project-choices 命令

连接到 Postgres MCP 服务器

使用时机: 您想要给 Claude 只读访问 PostgreSQL 数据库的权限,用于查询和架构检查。

1

添加 Postgres MCP 服务器

claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"
2

使用 Claude 查询您的数据库

# 在您的 Claude 会话中,您可以询问关于您的数据库的问题

> 描述我们的用户表的架构
> 系统中最近的订单是什么?
> 显示客户和发票之间的关系

提示:

  • Postgres MCP 服务器为了安全提供只读访问
  • Claude 可以帮助您探索数据库结构并运行分析查询
  • 您可以使用这个来快速理解不熟悉项目中的数据库架构
  • 确保您的连接字符串使用具有最小所需权限的适当凭据

从 JSON 配置添加 MCP 服务器

使用时机: 您有一个单个 MCP 服务器的 JSON 配置,想要将其添加到 Claude Code 中。

1

从 JSON 添加 MCP 服务器

# 基本语法
claude mcp add-json <name> '<json>'

# 示例:使用 JSON 配置添加 stdio 服务器
claude mcp add-json weather-api '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
2

验证服务器已添加

claude mcp get weather-api

提示:

  • 确保在您的 shell 中正确转义 JSON
  • JSON 必须符合 MCP 服务器配置架构
  • 您可以使用 -s global 将服务器添加到您的全局配置中,而不是项目特定配置

从 Claude Desktop 导入 MCP 服务器

使用时机: 您已经在 Claude Desktop 中配置了 MCP 服务器,想要在 Claude Code 中使用相同的服务器而无需手动重新配置。

1

从 Claude Desktop 导入服务器

# 基本语法 
claude mcp add-from-claude-desktop 
2

选择要导入的服务器

运行命令后,您将看到一个交互式对话框,允许您选择要导入的服务器。

3

验证服务器已导入

claude mcp list 

提示:

  • 此功能仅适用于 macOS 和 Windows Subsystem for Linux (WSL)
  • 它从这些平台上的标准位置读取 Claude Desktop 配置文件
  • 使用 -s global 标志将服务器添加到您的全局配置
  • 导入的服务器将与 Claude Desktop 中的名称相同
  • 如果已存在同名服务器,它们将获得数字后缀(例如,server_1

将 Claude Code 用作 MCP 服务器

使用时机: 您想要将 Claude Code 本身用作 MCP 服务器,让其他应用程序可以连接到它,提供 Claude 的工具和功能。

1

将 Claude 作为 MCP 服务器启动

# 基本语法
claude mcp serve
2

从其他应用程序连接

您可以从任何 MCP 客户端连接到 Claude Code MCP 服务器,比如 Claude Desktop。如果您使用 Claude Desktop,可以使用此配置添加 Claude Code MCP 服务器:

{
  "command": "claude",
  "args": ["mcp", "serve"],
  "env": {}
}

提示:

  • 服务器提供对 Claude 的工具的访问,如 View、Edit、LS 等
  • 在 Claude Desktop 中,尝试让 Claude 读取目录中的文件、进行编辑等
  • 请注意,此 MCP 服务器只是将 Claude Code 的工具暴露给您的 MCP 客户端,因此您自己的客户端负责实现单个工具调用的用户确认

将 Claude 用作类 Unix 工具

将 Claude 添加到您的验证过程

使用时机: 您想要将 Claude Code 用作 linter 或代码审查者。

步骤:

1

将 Claude 添加到您的构建脚本

// package.json
{
    ...
    "scripts": {
        ...
        "lint:claude": "claude -p '你是一个 linter。请查看与 main 分支相比的更改,报告任何与拼写错误相关的问题。在一行中报告文件名和行号,在第二行中描述问题。不要返回任何其他文本。'"
    }
}

管道输入,管道输出

使用时机: 您想要将数据通过管道输入到 Claude,并以结构化格式获取返回数据。

1

通过管道传输数据到 Claude

cat build-error.txt | claude -p '简明扼要地解释这个构建错误的根本原因' > output.txt

控制输出格式

使用时机: 您需要特定格式的 Claude 输出,特别是在将 Claude Code 集成到脚本或其他工具中时。

1

使用文本格式(默认)

cat data.txt | claude -p '总结这些数据' --output-format text > summary.txt

这只输出 Claude 的纯文本响应(默认行为)。

2

使用 JSON 格式

cat code.py | claude -p '分析这段代码中的错误' --output-format json > analysis.json

这输出一个包含元数据(包括成本和持续时间)的 JSON 消息数组。

3

使用流式 JSON 格式

cat log.txt | claude -p '解析这个日志文件中的错误' --output-format stream-json

这在 Claude 处理请求时实时输出一系列 JSON 对象。每个消息都是有效的 JSON 对象,但如果连接在一起,整个输出不是有效的 JSON。

提示:

  • 当您只需要 Claude 的响应时,使用 --output-format text
  • 当您需要完整的对话日志时,使用 --output-format json
  • 当您需要每个对话轮次的实时输出时,使用 --output-format stream-json

创建自定义斜杠命令

Claude Code 支持您可以创建的自定义斜杠命令,用于快速执行特定提示或任务。

创建项目特定命令

使用时机: 您想要为您的项目创建可重用的斜杠命令,供所有团队成员使用。

1

在您的项目中创建命令目录

mkdir -p .claude/commands
2

为每个命令创建一个 Markdown 文件

echo "分析这段代码的性能并建议三个具体的优化:" > .claude/commands/optimize.md 
3

在 Claude Code 中使用您的自定义命令

claude > /project:optimize 

提示:

  • 命令名称来自文件名(例如,optimize.md 变成 /project:optimize
  • 您可以在子目录中组织命令(例如,.claude/commands/frontend/component.md 变成 /project:frontend:component
  • 项目命令对克隆仓库的每个人都可用
  • Markdown 文件内容在调用命令时成为发送给 Claude 的提示

使用 $ARGUMENTS 添加命令参数

使用时机: 您想要创建可以接受用户额外输入的灵活斜杠命令。

1

创建带有 $ARGUMENTS 占位符的命令文件

echo "查找并修复问题 #$ARGUMENTS。按照以下步骤:1. 理解票据中描述的问题 2. 在我们的代码库中定位相关代码 3. 实现解决根本原因的解决方案 4. 添加适当的测试 5. 准备简明的 PR 描述" > .claude/commands/fix-issue.md 
2

使用带有问题编号的命令

claude > /project:fix-issue 123 

这将在提示中将 $ARGUMENTS 替换为 “123”。

提示:

  • $ARGUMENTS 占位符会被命令后面的任何文本替换
  • 您可以在命令模板中的任何位置放置 $ARGUMENTS
  • 其他有用的应用:为特定函数生成测试用例、为组件创建文档、审查特定文件中的代码或将内容翻译成指定语言

创建个人斜杠命令

使用时机: 您想要创建在所有项目中都可用的个人斜杠命令。

1

在您的主文件夹中创建命令目录

mkdir -p ~/.claude/commands 
2

为每个命令创建一个 Markdown 文件

echo "审查此代码的安全漏洞,重点关注:" > ~/.claude/commands/security-review.md 
3

使用您的个人自定义命令

claude > /user:security-review 

提示:

  • 个人命令以 /user: 而不是 /project: 为前缀
  • 个人命令只对您可用,不与团队共享
  • 个人命令在您的所有项目中都可用
  • 您可以使用这些命令在不同的代码库中保持一致的工作流程

使用 Git 工作树运行并行 Claude Code 会话

使用工作树实现隔离的编码环境

使用时机: 您需要同时处理多个任务,并在 Claude Code 实例之间完全隔离代码。

1

了解 Git 工作树

Git 工作树允许您从同一个仓库将多个分支检出到单独的目录中。每个工作树都有自己的独立工作目录和文件,同时共享相同的 Git 历史记录。在官方 Git 工作树文档中了解更多。

2

创建新的工作树

# 使用新分支创建工作树
git worktree add ../project-feature-a feature-a
# 或使用现有分支创建工作树
git worktree add ../project-bugfix bugfix-123 

这会创建一个包含您仓库单独工作副本的新目录。

3

在每个工作树中运行 Claude Code

# 导航到您的工作树 
cd ../project-feature-a
# 在这个隔离环境中运行 Claude Code
claude 
4

在另一个终端中:

cd ../project-bugfix
claude
5

管理您的工作树

# 列出所有工作树
git worktree list
# 完成后移除工作树
git worktree remove ../project-feature-a 

提示:

  • 每个工作树都有自己独立的文件状态,非常适合并行 Claude Code 会话
  • 在一个工作树中所做的更改不会影响其他工作树,防止 Claude 实例之间相互干扰
  • 所有工作树共享相同的 Git 历史记录和远程连接
  • 对于长期运行的任务,您可以让 Claude 在一个工作树中工作,同时在另一个工作树中继续开发
  • 使用描述性的目录名称,以便轻松识别每个工作树用于哪个任务
  • 记住根据您项目的设置在每个新工作树中初始化您的开发环境。根据您的技术栈,这可能包括:
    • JavaScript 项目:运行依赖安装(npm installyarn
    • Python 项目:设置虚拟环境或使用包管理器安装
    • 其他语言:遵循您项目的标准设置流程

下一步

Claude Code 参考实现

克隆我们的开发容器参考实现。

Was this page helpful?