Claude Code 会话管理
会话保存对话历史和仓库上下文。良好的会话管理让长任务可恢复,也让并行工作彼此隔离。
- 最近核验
- 适用版本
- Claude Code 2.1.x。本机使用 2.1.198 核对 CLI 拼写;官方文档可能描述更新的 2.1.x 行为。
- 核验方式
- 本机 help 和官方 Sessions 页面共同核对 session flags 与命名行为;未打开、重命名、导出或删除任何已保存会话。
可复现实践
在不改变原会话的情况下分支调查
给有边界的调查命名,明确恢复,并在尝试竞争假设前 fork。
准备
- 不含敏感 transcript 的可信一次性仓库。
- 干净工作树或已记录 diff baseline。
- 不包含客户或秘密数据的 session name。
执行步骤
记录仓库状态
Session branch 不隔离文件,先建立共享 filesystem baseline。
步骤 1 git status --short git rev-parse --show-toplevel启动并命名调查
用非敏感名称交互启动;若打开错误项目,在改动前退出。
步骤 2 claude --name session-lab按明确名称恢复
多个项目或会话下不要用含义模糊的 `--continue`。
步骤 3 claude --resume session-lab竞争方案前 fork
创建新 session ID 并保留原 transcript;两个会话仍共享仓库文件。
步骤 4 claude --resume session-lab --fork-session
预期结果
原会话仍可恢复,fork 独立显示,所有 filesystem change 可通过共享 git baseline 归因。
验证
- 在 session picker 确认明确名称和独立 fork。
- 每条工作分支后比较 `git status --short`。
- 导出或分享 transcript 前检查秘密和私有路径。
失败处理
名称有歧义
打开 picker 按项目和时间选择,不猜 session ID。
Fork 改了文件
这是共享 worktree 的正常行为;只检查和回退该实验。
清理或回退
- 退出 fork,通过正常 version-control review 只恢复它的已验证改动。
- 按组织 retention policy 处理 transcript,不做广泛 filesystem 删除。
边界与不适用场景
- Fork conversation context 不会创建 git branch 或隔离 worktree。
- Transcript 可能含代码、路径、prompt 和 tool output,应视为敏感项目数据。
启动与继续会话
探索用交互模式,脚本用 print 模式。continue flags 可在当前目录恢复最近工作,而不必重新解释仓库。
| Command | Description |
|---|---|
claude | 在当前目录启动新的交互式会话。 |
claude -c | 继续当前目录最近一次会话。 |
claude -r "name" "query" | 按名称或 ID 恢复会话并追加提示。 |
claude --continue | 继续本地最近会话的别名。 |
claude -r "auth-refactor" "Finish the remaining tests and summarize the diff."在会话内分支与恢复
当对话偏离目标时,用 branch 或 rewind 恢复,而不是丢弃全部前置工作。Slash commands 可检查历史并回到已知良好状态。
后台与会话并行
后台会话可释放终端并继续运行。agent view 适合监控多个会话,并查看哪些需要输入。
| Command | Description |
|---|---|
claude --bg "task" | 分离会话,让它在后台继续运行。 |
claude agents --json | 以脚本方式列出活跃后台会话。 |
/tasks | 查看当前会话中的后台任务和已完成 Subagents。 |
命名重要线程
在缺陷修复、重构和审查之间切换时,给会话加标签。
阅读指南用 worktree 隔离
并行改代码时,每个会话拥有独立 git worktree 更安全。
阅读指南用 agent view 监控
多个后台会话同时运行时,用 agent view 统一查看。
阅读指南导出与切换
会话检查
先 continue 再重复解释
仓库上下文已建立时,用 `-c` 或 `/resume` 而不是从头说明。
阅读指南高风险实验用 branch
大范围方案尝试应在 branch 中进行,避免覆盖主线程。
阅读指南无关任务用 clear
切换到不同功能或 incident 时,用 `/clear` 清空对话。
阅读指南长会话检查认证
无人值守后台任务开始前,确认登录不会在任务中途过期。
阅读指南