教程
使用Claude Code在开发工作流程中的实用示例和模式。
本指南提供了使用Claude Code进行常见工作流程的分步教程。每个教程包括清晰的指导、示例命令和最佳实践,帮助您充分利用Claude Code。
目录
- 继续之前的对话
- 理解新代码库
- 高效修复bug
- 重构代码
- 处理测试
- 创建拉取请求
- 处理文档
- 处理图像
- 使用延伸思考
- 设置项目记忆
- 设置模型上下文协议(MCP)
- 将Claude用作类Unix工具
- 创建自定义斜杠命令
- 使用Git工作树运行并行Claude Code会话
继续之前的对话
无缝继续您的工作
何时使用: 您一直在使用Claude Code处理任务,需要在稍后的会话中继续之前的工作。
Claude Code提供两种继续之前对话的选项:
--continue
自动继续最近的对话--resume
显示对话选择器
继续最近的对话
这会立即恢复您最近的对话,无需任何提示。
在非交互模式下继续
将--print
与--continue
一起使用可以在非交互模式下恢复最近的对话,非常适合脚本或自动化。
显示对话选择器
这会显示一个交互式对话选择器,显示:
- 对话开始时间
- 初始提示或对话摘要
- 消息数量
使用箭头键导航并按Enter选择对话。
工作原理:
- 对话存储:所有对话都会自动保存在本地,包含完整的消息历史
- 消息反序列化:恢复时,整个消息历史都会被还原以保持上下文
- 工具状态:之前对话中的工具使用和结果会被保留
- 上下文恢复:对话会在保留所有先前上下文的情况下继续
提示:
- 对话历史存储在您的本地机器上
- 使用
--continue
快速访问您最近的对话 - 当您需要选择特定的过去对话时使用
--resume
- 恢复时,您将看到整个对话历史记录,然后再继续
- 恢复的对话使用与原始对话相同的模型和配置开始
示例:
理解新代码库
快速了解代码库概况
何时使用: 您刚刚加入一个新项目,需要快速了解其结构。
导航到项目根目录
启动Claude Code
请求高级概述
深入了解特定组件
提示:
- 从广泛的问题开始,然后缩小到特定领域
- 询问项目中使用的编码约定和模式
- 请求项目特定术语的词汇表
查找相关代码
何时使用: 您需要找到与特定功能相关的代码。
请Claude查找相关文件
了解组件如何交互
理解执行流程
提示:
- 明确说明您要查找的内容
- 使用项目中的领域语言
高效修复bug
诊断错误消息
何时使用: 您遇到了错误消息,需要找到并修复其源头。
与Claude分享错误
请求修复建议
应用修复
提示:
- 告诉Claude重现问题和获取堆栈跟踪的命令
- 提及重现错误的步骤
- 让Claude知道错误是间歇性的还是一致的
重构代码
现代化遗留代码
何时使用: 您需要更新旧代码以使用现代模式和实践。
识别需要重构的遗留代码
获取重构建议
安全地应用更改
验证重构
提示:
- 请Claude解释现代方法的好处
- 在需要时请求更改保持向后兼容性
- 以小的、可测试的增量进行重构
处理测试
增加测试覆盖率
何时使用: 您需要为未覆盖的代码添加测试。
识别未测试的代码
生成测试脚手架
添加有意义的测试用例
运行并验证测试
提示:
- 请求覆盖边缘情况和错误条件的测试
- 在适当时请求单元测试和集成测试
- 让Claude解释测试策略
创建拉取请求
生成全面的PR
何时使用: 您需要为您的更改创建一个文档完善的拉取请求。
总结您的更改
使用Claude生成PR
审查和完善
添加测试详情
提示:
- 直接请求Claude为您创建PR
- 在提交前审查Claude生成的PR
- 请Claude突出显示潜在风险或考虑事项
处理文档
生成代码文档
何时使用: 您需要为您的代码添加或更新文档。
识别未文档化的代码
生成文档
审查和增强
验证文档
提示:
- 指定您想要的文档风格(JSDoc、docstrings等)
- 在文档中请求示例
- 为公共API、接口和复杂逻辑请求文档
处理图像
分析图像和截图
何时使用: 您需要处理代码库中的图像或获取Claude帮助分析图像内容。
将图像添加到对话中
您可以使用以下任何方法:
- 将图像拖放到Claude Code窗口中
- 复制图像并使用cmd+v(在Mac上)粘贴到CLI中
- 提供图像路径 claude “分析这个图像:/path/to/your/image.png”
请Claude分析图像
使用图像作为上下文
从视觉内容获取代码建议
提示:
- 当文本描述不清晰或繁琐时使用图像
- 包括错误、UI设计或图表的截图以提供更好的上下文
- 您可以在对话中处理多个图像
- 图像分析适用于图表、截图、模型等
使用延伸思考
利用Claude的延伸思考处理复杂任务
何时使用: 当处理复杂的架构决策、具有挑战性的bug或规划需要深度推理的多步骤实现时。
提供上下文并请Claude思考
Claude将从您的代码库收集相关信息并 使用延伸思考,这将在界面中可见。
通过后续提示完善思考
获取延伸思考最大价值的提示:
延伸思考对以下复杂任务最有价值:
- 规划复杂的架构变更
- 调试复杂问题
- 为新功能创建实施计划
- 理解复杂代码库
- 评估不同方法之间的权衡
您提示思考的方式会导致不同深度的思考:
- “思考”触发基本的延伸思考
- 强化短语如”多思考”、“思考很多”、“更深入思考”或”思考更久”会触发更深入的思考
有关更多延伸思考提示技巧,请参阅延伸思考提示。
Claude将在响应上方以斜体灰色文本显示其思考过程。
设置项目记忆
创建有效的CLAUDE.md文件
何时使用: 您想设置一个CLAUDE.md文件来存储重要的项目信息、约定和常用命令。
为您的代码库引导CLAUDE.md
提示:
- 包括常用命令(构建、测试、lint)以避免重复搜索
- 记录代码风格偏好和命名约定
- 添加特定于您项目的重要架构模式
- CLAUDE.md记忆可用于与团队共享的指令和您的个人偏好。有关更多详情,请参阅管理Claude的记忆。
设置模型上下文协议(MCP)
模型上下文协议(MCP)是一个开放协议,使LLM能够访问外部工具和数据源。有关更多详情,请参阅MCP文档。
使用第三方MCP服务器风险自负。确保您信任MCP服务器,并在使用与互联网通信的MCP服务器时特别小心,因为这些可能会使您面临提示注入风险。
配置MCP服务器
何时使用: 您想通过使用模型上下文协议连接到专门工具和外部服务器来增强Claude的能力。
添加MCP Stdio服务器
添加MCP SSE服务器
管理您的MCP服务器
提示:
- 使用
-s
或--scope
标志指定配置存储位置:local
(默认):仅在当前项目中对您可用(在旧版本中称为project
)project
:通过.mcp.json
文件与项目中的所有人共享user
:对您在所有项目中可用(在旧版本中称为global
)
- 使用
-e
或--env
标志设置环境变量(例如,-e KEY=value
) - 使用MCP_TIMEOUT环境变量配置MCP服务器启动超时(例如,
MCP_TIMEOUT=10000 claude
设置10秒超时) - 使用Claude Code中的
/mcp
命令随时检查MCP服务器状态 - MCP遵循客户端-服务器架构,其中Claude Code(客户端)可以连接到多个专门服务器
理解MCP服务器作用域
何时使用: 您想了解不同MCP作用域如何工作以及如何与团队共享服务器。
本地作用域MCP服务器
默认作用域(local
)将MCP服务器配置存储在您的项目特定用户设置中。这些服务器仅在您在当前项目工作时对您可用。
项目作用域MCP服务器(.mcp.json)
项目作用域服务器存储在项目根目录的.mcp.json
文件中。此文件应检入版本控制以与团队共享服务器。
这会创建或更新具有以下结构的.mcp.json
文件:
用户作用域MCP服务器
用户作用域服务器在您机器上的所有项目中对您可用,并且对您是私有的。
提示:
- 同名的本地作用域服务器优先于项目作用域和用户作用域服务器
- 同名的项目作用域服务器(在
.mcp.json
中)优先于用户作用域服务器 - 在使用
.mcp.json
中的项目作用域服务器之前,Claude Code会提示您出于安全原因批准它们 .mcp.json
文件旨在检入版本控制以与团队共享MCP服务器- 项目作用域服务器使团队中的每个人都能轻松访问相同的MCP工具
- 如果您需要重置对启用或禁用哪些项目作用域服务器的选择,请使用
claude mcp reset-project-choices
命令
连接到Postgres MCP服务器
何时使用: 您想给Claude只读访问PostgreSQL数据库以进行查询和架构检查。
添加Postgres MCP服务器
使用Claude查询您的数据库
提示:
- Postgres MCP服务器为安全起见提供只读访问
- Claude可以帮助您探索数据库结构并运行分析查询
- 您可以使用此功能快速了解不熟悉项目中的数据库架构
- 确保您的连接字符串使用具有最低所需权限的适当凭据
从JSON配置添加MCP服务器
何时使用: 您有单个MCP服务器的JSON配置,想要将其添加到Claude Code中。
从JSON添加MCP服务器
验证服务器已添加
提示:
- 确保JSON在您的shell中正确转义
- JSON必须符合MCP服务器配置模式
- 您可以使用
-s global
将服务器添加到全局配置而不是项目特定配置
从Claude Desktop导入MCP服务器
何时使用: 您已经在Claude Desktop中配置了MCP服务器,想要在Claude Code中使用相同的服务器而无需手动重新配置。
从Claude Desktop导入服务器
选择要导入的服务器
运行命令后,您将看到一个交互式对话框,允许您选择要导入的服务器。
验证服务器已导入
提示:
- 此功能仅适用于macOS和Windows Subsystem for Linux (WSL)
- 它从这些平台上的标准位置读取Claude Desktop配置文件
- 使用
-s global
标志将服务器添加到全局配置 - 导入的服务器将与Claude Desktop中的名称相同
- 如果已存在同名服务器,它们将获得数字后缀(例如,
server_1
)
将Claude Code用作MCP服务器
何时使用: 您想将Claude Code本身用作MCP服务器,其他应用程序可以连接到它,为它们提供Claude的工具和功能。
将Claude启动为MCP服务器
从另一个应用程序连接
您可以从任何MCP客户端连接到Claude Code MCP服务器,例如Claude Desktop。如果您使用的是Claude Desktop,可以使用此配置添加Claude Code MCP服务器:
提示:
- 服务器提供对Claude的工具的访问,如View、Edit、LS等
- 在Claude Desktop中,尝试让Claude读取目录中的文件、进行编辑等
- 请注意,此MCP服务器只是将Claude Code的工具暴露给您的MCP客户端,因此您自己的客户端负责为单个工具调用实现用户确认
将Claude用作类Unix工具
将Claude添加到您的验证过程
何时使用: 您想将Claude Code用作linter或代码审查工具。
步骤:
将Claude添加到您的构建脚本
管道输入,管道输出
何时使用: 您想将数据管道输入到Claude,并以结构化格式获取数据。
通过Claude管道传输数据
控制输出格式
何时使用: 您需要特定格式的Claude输出,特别是在将Claude Code集成到脚本或其他工具中时。
使用文本格式(默认)
这只输出Claude的纯文本响应(默认行为)。
使用JSON格式
这输出一个包含元数据(包括成本和持续时间)的JSON消息数组。
使用流式JSON格式
这在Claude处理请求时实时输出一系列JSON对象。每条消息都是有效的JSON对象,但如果连接起来,整个输出不是有效的JSON。
提示:
- 当您只需要Claude的响应时,使用
--output-format text
进行简单集成 - 当您需要完整的对话日志时,使用
--output-format json
- 当您需要每个对话轮次的实时输出时,使用
--output-format stream-json
创建自定义斜杠命令
Claude Code支持自定义斜杠命令,您可以创建这些命令来快速执行特定提示或任务。
创建项目特定命令
何时使用: 您想为项目创建可重用的斜杠命令,所有团队成员都可以使用。
在项目中创建命令目录
为每个命令创建Markdown文件
在Claude Code中使用您的自定义命令
提示:
- 命令名称源自文件名(例如,
optimize.md
变为/project:optimize
) - 您可以在子目录中组织命令(例如,
.claude/commands/frontend/component.md
变为/project:frontend:component
) - 项目命令对克隆存储库的每个人都可用
- Markdown文件内容成为调用命令时发送给Claude的提示
使用$ARGUMENTS添加命令参数
何时使用: 您想创建可以接受用户额外输入的灵活斜杠命令。
创建带有$ARGUMENTS占位符的命令文件
使用带有问题编号的命令
这将在提示中将$ARGUMENTS替换为”123”。
提示:
- $ARGUMENTS占位符会被命令后面的任何文本替换
- 您可以在命令模板中的任何位置放置$ARGUMENTS
- 其他有用的应用:为特定函数生成测试用例、为组件创建文档、审查特定文件中的代码或将内容翻译成指定语言
创建个人斜杠命令
何时使用: 您想创建在所有项目中都能使用的个人斜杠命令。
在您的主文件夹中创建命令目录
为每个命令创建Markdown文件
使用您的个人自定义命令
提示:
- 个人命令以
/user:
为前缀,而不是/project:
- 个人命令只对您可用,不与团队共享
- 个人命令在所有项目中都有效
- 您可以使用这些命令在不同代码库之间保持一致的工作流程
使用Git工作树运行并行Claude Code会话
使用工作树创建隔离的编码环境
何时使用: 您需要同时处理多个任务,并在Claude Code实例之间完全隔离代码。
了解Git工作树
Git工作树允许您从同一存储库中检出多个分支到单独的目录。每个工作树都有自己的工作目录,文件是隔离的,同时共享相同的Git历史。在官方Git工作树文档中了解更多。
创建新工作树
这会创建一个包含存储库单独工作副本的新目录。
在每个工作树中运行Claude Code
在另一个终端中:
管理您的工作树
提示:
- 每个工作树都有自己独立的文件状态,非常适合并行Claude Code会话
- 在一个工作树中所做的更改不会影响其他工作树,防止Claude实例相互干扰
- 所有工作树共享相同的Git历史和远程连接
- 对于长时间运行的任务,您可以让Claude在一个工作树中工作,同时您在另一个工作树中继续开发
- 使用描述性目录名称,以便轻松识别每个工作树的任务
- 记得根据项目的设置在每个新工作树中初始化开发环境。根据您的技术栈,这可能包括:
- JavaScript项目:运行依赖安装(
npm install
、yarn
) - Python项目:设置虚拟环境或使用包管理器安装
- 其他语言:遵循项目的标准设置流程
- JavaScript项目:运行依赖安装(
下一步
Claude Code参考实现
克隆我们的开发容器参考实现。