本教程面向已经装好 Claude Code、跑通过一次对话,却卡在"关掉终端、第二天回来怎么接着干"的零基础用户。你将学会用 --continue、--resume 一键续接历史会话,用 session ID 精确定位,用 /compact、/clear、/rewind、/branch 四招管理上下文,确保长任务不丢进度、不走偏方向。学完后你能在多天、多任务的真实开发中,把 Claude Code 当成一个"记得昨天聊到哪"的稳定搭档。
claude --version 能输出版本号,建议 2.1.x,2026 年 6 月版)claude 进入过对话)cd 切目录、ls 看文件关键认知:Claude Code 把每一次对话当作一个会话(session)保存到本地,按"项目目录"分组。只要目录不变、记录没清,你就能随时回到任意一次对话继续。理解这一点,本文的内容就顺理成章。
很多新手以为关闭终端 = 对话清空,于是第二天只能把昨天的需求重新描述一遍——这是最大的误解。
Claude Code 在本地为每个项目目录维护一份会话历史,结构大致是:
~/.claude/projects/<目录路径转义>/
├── <session-id-1>.jsonl # 一次完整对话的所有消息
├── <session-id-2>.jsonl
└── ...
/、\ 转成 -,所以你在 /home/gprshome/todo 里的会话,和 /home/gprshome/blog 里的会话是分开存放、互不串扰的。.jsonl 文件名就是 session ID,是一个唯一标识符,例如 a1b2c3d4-...。预期结果:在任意项目目录执行 ls ~/.claude/projects/,能看到一串以路径命名的文件夹;进入对应文件夹能看到若干 .jsonl。只要这里有文件,就一定能续跑。
常见问题:
- Q:换了一台电脑,会话还在吗? A:不在。会话存在本地磁盘,不随账号自动同步。要做迁移需手动拷贝 ~/.claude/projects/ 下对应目录。
- Q:会话占空间吗? A:单次几十 KB 到几 MB,长期累积可定期清理无用的 .jsonl。
--continue 一键续接最近的会话最常用的续跑方式,只有一个字母。
cd ~/todo
claude -c # 等价于 claude --continue
操作说明:-c(--continue 的缩写)会在当前目录里找到最近一次会话,直接带着完整上下文进入对话。你不用再解释项目背景,直接说"接着把昨天那个删除功能写完"即可。
预期结果:进入交互界面后,提示符下方会显示恢复的会话摘要(如"Resumed conversation"),Claude 立刻能接上之前的文件状态和讨论。
常见问题:
- Q:报错说找不到会话? A:-c 严格依赖"当前目录"。必须在和昨天同一个目录下执行,跨目录是找不到的。用 pwd 确认当前路径。
- Q:我不想续最近的,想续更早的一次怎么办? A:用下一步的 --resume,它提供选择列表。
--resume 从会话列表里挑一个当你同时推进多个任务、或想翻回头改几天前的某个分支时,-c 就不够用了。
cd ~/todo
claude -r # 等价于 claude --resume
操作说明:-r 会弹出一个交互式会话选择器,列出当前目录下的历史会话。每一行通常显示:会话名称(若设置过)、否则显示对话摘要或第一句话,以及对应的 session ID 和时间。用方向键上下移动、回车选中。
如果你已经知道目标 session ID(比如从 .jsonl 文件名里复制来的),可以跳过选择器直接续:
claude --resume a1b2c3d4-5678-...
预期结果:屏幕上出现一列历史会话,选中后进入该会话,上下文与当时的最后一刻完全一致。
常见问题:
- Q:列表里全是"第一句话",分不清哪个是哪个? A:养成给关键会话起名的习惯。Claude Code 支持为会话设置名称,设置过的会话在选择器里会优先显示名字而非摘要,一眼就能认出。
- Q:session ID 太长记不住? A:不必记全。复制 .jsonl 文件名粘贴即可;或在交互中靠摘要+时间定位。
下面是一个完整、可复现的练习,把前面三步串起来。目标:用 Python 写一个命令行待办工具 todo.py,分两天完成。
第一天(在一个干净目录里开始):
mkdir -p ~/todo && cd ~/todo
claude
进入后输入:
帮我创建 todo.py,先实现 add 和 list 两个子命令:add 往 tasks.json 追加一条待办,list 打印所有待办。用标准库 json 即可。
Claude 会创建 todo.py 和示例 tasks.json。试跑:
python3 todo.py add "买菜"
python3 todo.py add "写周报"
python3 todo.py list
看到两条待办输出后,直接关闭终端(模拟下班)。
第二天(模拟续班):
cd ~/todo
claude -c
进入后输入:
接着昨天的 todo.py,新增 done 子命令,把指定序号的待办标记为完成;list 时已完成项前面打 [x],未完成打 [ ]。
Claude 会记得昨天用的是 tasks.json、字段结构、add/list 的实现方式,直接给出 done 实现,而不会推翻重写。这就体现了"上下文不丢"的价值。
预期结果:第二天 list 输出变成:
[ ] 买菜
[x] 写周报
关键体会:如果没有 -c,第二天 Claude 会把 todo.py 当全新项目对待,很可能换一套数据结构、改字段名,反而把昨天能跑的代码改坏。续跑的本质是"保持前后认知一致"。
/compact 压缩而不丢失随着对话变长,上下文窗口会被塞满。Claude Code 在接近上限时会提示你。这时有两个选择,其中更推荐 /compact。
在交互界面里直接输入:
/compact
操作说明:/compact 会把此前的对话压缩成一份摘要,替换掉冗长的原始消息,腾出上下文空间,同时保留关键决策(比如已确定的技术方案、改过的文件)。你也可以带一句指引,告诉它压缩时务必留下什么:
/compact 保留 todo.py 的命令行参数设计和已完成的 done 逻辑,丢弃中间的试错过程
预期结果:界面提示上下文已压缩,剩余 token 数明显回升,对话继续。Claude 仍记得项目核心约定,但"忘掉"了无关的来回试探。
与 /clear 的区别(重要):
| 命令 | 效果 | 适用场景 |
|---|---|---|
/compact |
压缩摘要,保留要点 | 同一任务继续做,只是太长了 |
/clear |
清空上下文,从零开始 | 换一个完全不相关的任务 |
常见问题:
- Q:压缩后 Claude 把某个关键约定忘了? A:下次带更明确的指引,把"务必保留 X"写进 /compact 后面;或把重要约定写进项目记忆 CLAUDE.md,让它每次自动加载,不依赖上下文。
- Q:能不能自动压缩? A:接近上限时 Claude Code 会给出提示,建议手动执行以便你掌控保留内容。
/rewind 回退到正确的一步有时 Claude 走错方向(比如误删了一段你想保留的代码),或你给了个糟糕的指令。不要硬拽,直接回退。
在交互界面输入:
/rewind
操作说明:/rewind(部分版本也可用连按两次 Esc)会把对话回退到更早的某一步,撤销那一步之后的消息与文件改动,让你从干净的岔路口重新来过。你可以选择回退多少步。
预期结果:对话和被改坏的文件恢复到回退点的状态,你可以重新下达指令。
与 /clear 的区别:/clear 是"全清重来",/rewind 是"只倒带几步"。走偏一点用 /rewind,方向完全错了才用 /clear。
常见问题: - Q:文件已经被改坏了,/rewind 能救回吗? A:能。Claude Code 在会话里记录了文件改动轨迹,回退会一并恢复。但不依赖 Claude Code 的外部改动(你手动改的、或别的工具改的)不会自动回滚,重要文件仍建议用 git 兜底。
/branch 分叉而不破坏原会话做架构决策时常想"如果不这么做、换种方案会怎样"。直接在原会话里改,会把原来的方案搅乱。正确做法是分叉。
/branch
或启动时用 CLI 参数:
claude --fork
操作说明:/branch(也叫 fork session)会基于当前会话复制出一个新会话,原会话原封不动。你在分叉里大胆尝试方案 B,不满意就回原会话继续方案 A,互不影响。
预期结果:分叉后得到一个独立的新会话,选择器里能看到原会话和分叉会话并存。
常见问题:
- Q:分叉会占用双倍空间吗? A:会话以 JSONL 记录,分叉是新的记录文件,体积可接受;试完不需要的分叉可删除对应 .jsonl。
- Q:2026 年的新工具 /btw 是什么? A:自 v2.1.72(2026 年 3 月)起,Claude Code 引入 /btw,用于"顺手补充一句旁白"(比如临时问一个无关小问题)而不污染主线上下文。它和 /branch 同属"上下文卫生(context hygiene)"工具族,适合在意上下文纯净度的进阶用户。
把上面八招放到一张图里,你就拥有了完整的"上下文不丢"心智模型:
flowchart TD
A[启动 claude] --> B{带参数?}
B -->|claude 无参数| C[全新会话]
B -->|claude -c| D[续最近会话]
B -->|claude -r| E[选择器挑历史会话]
B -->|claude -r ID| F[直续指定 session]
C --> G[正常对话]
D --> G
E --> G
F --> G
G --> H{遇到问题?}
H -->|上下文将满| I["/compact 压缩摘要"]
H -->|走偏几步| J["/rewind 倒带"]
H -->|想试方案B| K["/branch 分叉"]
H -->|换不相关任务| L["/clear 全清重来"]
H -->|顺利推进| G
I --> G
J --> G
K --> M[独立新会话继续探索]
L --> C
G --> N[关闭终端]
N --> O[第二天: cd 同目录 + claude -c]
O --> D
记住这张图的三个出口:满了用 compact、错了用 rewind、换路用 branch、换事用 clear,外加关机用 continue、找旧的用 resume,六招即覆盖 95% 的日常场景。
| 误区 | 正解 |
|---|---|
| 关掉终端对话就没了 | 会话存本地,cd 回原目录 claude -c 即可续 |
| 第二天重新描述需求 | 用 -c/-r,让 Claude 接着昨天的状态干 |
上下文满了直接 /clear |
多数情况该用 /compact,保留要点 |
| 文件被改坏只能手抄恢复 | 先试 /rewind 倒带回退 |
| 试新方案在原会话里乱改 | 用 /branch 分叉,保护主线 |
| 不给会话起名,列表全是第一句话 | 给关键会话命名,便于日后辨认 |
回到第四步的 todo.py 练习,用以下清单自测你是否真正掌握:
claude -r 在选择器里找到第一天的会话并选中。claude -c 续接并让 Claude 记得 tasks.json 的结构。/compact,并验证压缩后 Claude 仍记得命令行参数设计。todo.py,用 /rewind 恢复。/branch 开一个分叉,尝试把存储从 JSON 换成 SQLite,验证原会话未被影响。全部跑通,说明你已从"会启动 Claude Code"升级到"会管理 Claude Code 的记忆"。
--continue、--resume、fork 的权威说明CLAUDE.md,让上下文压缩也丢不了核心约束/compact、/clear、/rewind、/branch、/btw 只是冰山一角,输入 / 可看完整列表~/.claude/projects/ 下用文本搜索跨会话定位关键词/compact 管理-c 续上",这一刻的体感比任何讲解都有效;可设置"故意把代码改坏,用 rewind 救回"的彩蛋环节增强记忆--continue、--resume、session ID 与分叉的权威定义--resume 选择器与会话历史检索技巧/btw 与分叉、回退工具族[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
