第 5 章:会话管理 — 长对话不迷路

⏱ Est. reading time: 9 min Updated on 5/15/2026

在前四章中,我们完成了番茄钟项目的安装、初始化、规划和核心功能实现。随着项目深入,对话会越来越长,可能会涉及多个功能并行开发。如何在不同任务间切换,如何保存重要的决策过程,如何清理上下文而不丢失进度?本章将介绍 Claude Code 的会话管理命令,帮助你在长时间开发中保持条理清晰。

5.1 会话生命周期

Claude Code 会话从启动到退出形成完整的生命周期。一个会话包含:

  • 对话历史:你与 Claude 的所有问答记录
  • 文件状态:已读取、修改的文件内容和上下文
  • 上下文记忆:Claude 对项目结构和代码的理解

这些信息共同构成了一个会话的"记忆"。使用 /resume 命令可以查看所有会话列表,它们按时间顺序排列,你可以通过命名来标记特定会话,方便后续识别和恢复。

5.2 /clear — 开始新对话

语法

/clear [name]

功能说明

清空当前对话的上下文历史,开始一个全新的对话。项目记忆文件(CLAUDE.md)会保留,但之前的所有对话内容都会被清除。之前的对话可以通过 /resume 命令恢复,不会永久丢失。

传递名称参数可以为当前会话命名,这样在 /resume 的选择器中更容易识别。

实际使用示例

/clear timer-done

这个命令会清除当前对话历史,并将刚结束的会话命名为"timer-done",之后可以通过 /resume 恢复。

注意事项/技巧

  • 别名:/reset/new 可以互换使用
  • /compact 的区别:/compact 会压缩当前对话历史但继续在同一对话中,/clear 则是彻底开始一个新的对话
  • 建议在完成一个完整功能模块后使用 /clear,命名规则可以是"功能名-done"或"功能名-phase1"等
  • 项目文档 CLAUDE.md 是全局的,不受 /clear 影响,适合记录跨会话的架构决策

5.3 /resume — 恢复之前的对话

语法

/resume [session]

功能说明

恢复之前关闭或中断的对话,可以按会话 ID 或名称恢复。如果不带参数,会打开一个交互式选择器,显示所有可恢复的会话列表。

实际使用示例

/resume

打开会话选择器,从中选择要恢复的对话。

/resume timer-done

直接恢复名为"timer-done"的会话。

注意事项/技巧

  • 别名:/continue 功能相同
  • 使用场景:关闭终端后想继续之前的工作、切换回未完成的任务分支
  • 命令行启动时也可以恢复:claude --resumeclaude --continue
  • 恢复后,所有之前的上下文(文件内容、对话历史)都会完整保留
  • 对于长时间未恢复的会话,建议先查看对话摘要,确认是否需要恢复

5.4 /branch — 创建对话分支

语法

/branch [name]

功能说明

在当前对话的时间点创建一个分支,保留原始分支不变。你会自动切换到新分支,可以在这里进行不同的尝试或临时任务。原始分支可以通过 /resume 返回。

实际使用示例

/branch fix-timer-bug

创建一个名为"fix-timer-bug"的分支,专门处理计时器的一个 bug,同时保留主对话的当前状态。

注意事项/技巧

  • 别名:/fork 可以互换使用
  • 使用场景:实现做到一半想尝试不同方案、临时处理紧急 bug 不想打断主流程
  • 分支是独立的,新分支的修改不会影响原始分支
  • 可以创建多个分支,每个分支有自己的对话历史和上下文
  • 使用 /resume 时,所有分支都会显示在选择器中,便于切换

5.5 /rename — 命名会话

语法

/rename [name]

功能说明

为当前会话设置一个名称,该名称会在提示栏显示,方便识别。如果不带参数,Claude 会根据对话历史自动生成一个名称。

实际使用示例

/rename todo-implementation

将当前会话命名为"todo-implementation"。

/rename

让 Claude 自动生成一个会话名称。

注意事项/技巧

  • 会话名称会显示在 /resume 选择器中,便于快速识别
  • 建议在会话开始时或完成关键步骤后命名
  • 命名规范:使用有意义的描述性名称,如"feature-todo-list"、"bugfix-timer-stopping"等
  • 可以随时修改会话名称,/rename 会覆盖之前的名称

5.6 /export — 导出对话记录

语法

/export [filename]

功能说明

将当前对话的历史记录导出为纯文本文件。如果提供文件名,直接写入指定文件;如果不带参数,会打开文件保存对话框让你选择位置和名称。

实际使用示例

/export timer-design.md

将当前对话导出到项目目录下的 timer-design.md 文件。

/export

打开文件保存对话框,选择导出位置和文件名。

注意事项/技巧

  • 导出格式为纯文本,便于分享和版本控制
  • 使用场景:保存重要的设计决策、技术选型过程、问题排查记录
  • 导出的文件可以提交到 Git,作为项目文档的一部分
  • 对于长对话,导出前可以先用 /compact 压缩,去除冗余内容
  • 导出的内容包含时间戳,便于追溯决策的时间点

5.7 /stop — 停止后台会话

语法

/stop

功能说明

停止当前附加的后台会话。会话的日志文件和任何创建的 worktree 都会保留在磁盘上,只是停止会话进程。

实际使用示例

/stop

停止当前附加的后台会话。

注意事项/技巧

  • 仅在附加到后台会话时可用,普通会话中此命令不可用
  • 如果想分离但不停止后台会话,使用 /exit 或按左箭头键
  • 停止后会话可以重新通过 /resume 恢复
  • 日志和 worktree 保留,确保工作成果不会丢失
  • 适用于长时间运行的后台任务完成后的清理

5.8 动手做:多任务切换

让我们通过一个实际场景来练习会话管理。假设你在开发番茄钟计时器功能时发现一个小 bug,需要临时修复,同时还在规划 Todo List 功能。

Step 1:发现 bug

在计时器开发过程中,你发现计时器在暂停后再开始时时间计算有误。

Step 2:创建分支处理 bug

使用 /branch 命令创建一个专门的 bug 修复分支:

/branch fix-timer-bug

现在你在新分支中,可以专注于修复这个 bug,不会影响主对话的上下文。

Step 3:修复 bug 并导出过程

修复完成后,将修复过程导出保存:

/export timer-fix.md

这样就有了详细的修复记录,方便后续参考和代码审查。

Step 4:返回主对话

使用 /resume 回到主对话:

/resume

在选择器中找到你的主对话(可能是未命名的对话或之前的名称),恢复继续开发。

Step 5:继续 Todo List 开发

在主对话中继续实现 Todo List 功能,不受 bug 修复分支的影响。

Step 6:完成后命名会话

Todo List 功能完成后,命名当前会话:

/clear todo-done

这样你的进度清晰标记,可以在需要时恢复。

通过这个流程,你学会了:

  • 使用 /branch 分支处理临时任务
  • 使用 /export 保存重要过程
  • 使用 /resume 在不同会话间切换
  • 使用 /clear 完成并标记会话

本章小结

本章介绍了 Claude Code 的会话管理功能,核心命令包括:

  • /clear:清空对话开始新会话,可命名便于识别
  • /resume:恢复之前的对话,支持交互选择器
  • /branch:创建对话分支,保留原始会话
  • /rename:为会话命名,便于管理
  • /export:导出对话记录,保存决策过程
  • /stop:停止后台会话,保留工作成果

这些命令帮助你在长时间开发中保持清晰,在不同任务间灵活切换,同时保留重要的上下文和决策记录。

在下一章,我们将学习如何使用 /compact/summarize 来管理长对话,保持对话的精简和高效。