Claude Code CLI 恢复与继续历史会话教程
来源:互联网
时间:2026-07-23 07:13:23
想继续之前的对话?其实关键不在于参数用对没有,而是终端到底站在哪个项目目录里。
Claude Code CLI 把历史会话恢复分成两条主路:-c 继续当前目录最近的会话,-r 按会话 ID、名称或交互选择器恢复指定会话。Windows、macOS 与 Linux 使用相同参数。开始前先确认 Claude Code 已能正常启动,并把终端切到原会话所属项目。若只是想沿着原对话继续,直接恢复;若准备尝试高风险改动,又不想让后续消息继续写入原会话,就在恢复时加 --fork-session。
先把终端放回原项目
-
打开 PowerShell、Windows Terminal、macOS Terminal 或 Linux 终端,进入当时运行 Claude Code 的项目目录。
入口位置:
核对当前路径和仓库。会话 ID 的查找范围是当前项目目录及其 Git worktree,因此项目路径选错时,即使 ID 本身正确,也可能找不到目标会话。主要动作:
终端当前目录与原项目一致,或位于同一项目的 Git worktree 中;准备继续的文件和 Git 状态也属于这个项目。成功标志:
不确定原目录时,先从常用项目逐个进入,再运行失败处理:
claude -r打开选择器查看候选会话。不要在一个无关目录中反复粘贴同一会话 ID。
继续当前目录最近的会话
-
停留在已经核对过的项目目录,确认终端没有正在运行的 Claude Code 交互会话。
入口位置:
执行主要动作:
claude -c。短参数-c与完整参数--continue含义相同,都会载入当前目录最近的会话。Claude Code 进入交互界面,能看到恢复后的上下文,并可继续输入下一条消息。成功标志:
打开的不是预期会话时立即退出,不要继续追加消息;改用失败处理:
claude -r从选择器中明确挑选。若没有候选会话,回到上一步检查项目目录。
官方 CLI Reference 的命令表把 claude -c 定义为继续当前目录最近的对话。这个“最近”受当前目录约束,不等于账号下所有项目里最后打开的一次。

--continue 还会把通过 /add-dir 加入当前目录的会话纳入范围。项目使用过额外目录时,这条规则能解释为什么某个会话仍会被视为当前目录的候选。

用选择器恢复指定会话
-
仍在目标项目目录中,需要恢复的不是最近一次,或无法确定会话 ID 和名称。
入口位置:
执行主要动作:
claude -r或claude --resume,在交互选择器中查看并选择会话。后台会话会以bg标记,看到这个标记时应结合任务内容再确认。选择后进入的对话上下文与目标任务一致,最近讨论、文件范围和待办内容都能对应上。成功标志:
列表里没有目标时,先确认目录和 Git worktree;会话曾用失败处理:
/add-dir加入当前目录时,选择器和名称搜索仍会包含它。候选很多时,可退出后改用名称或 ID 精确恢复。
--resume 不带值时打开选择器,带名称或 ID 时直接查找。官方参数说明还明确区分了搜索边界:选择器和名称搜索会包含通过 /add-dir 加入当前目录的会话;直接传会话 ID 时,只搜索当前项目目录及其 Git worktree。

按 ID 或名称恢复并直接发出下一条消息
-
已经从选择器、任务记录或团队约定中拿到会话 ID 或会话名称。
入口位置:
执行主要动作:
claude -r "。把" "继续处理上一轮留下的问题" 换成真实 ID 或名称;末尾消息会在恢复后作为第一条新指令发送。命令直接进入指定会话,新消息出现在正确上下文中,Claude Code 的回答能延续先前任务。成功标志:
提示找不到会话时,名称应检查拼写;使用 ID 时应回到正确项目或其 Git worktree。仍无法确定时,不要猜 ID,改用不带值的失败处理:
claude -r查看列表。
官方命令示例同时展示了会话参数和恢复后的首条消息。消息可以省略;省略时只恢复上下文,进入后再手动输入。

在非交互流程中继续最近会话
-
脚本、自动化任务或命令行管道需要沿用当前目录最近会话,但不需要打开交互选择器。
入口位置:
执行主要动作:
claude -c -p "继续检查剩余问题"。-c决定会话,-p让本次查询按非交互方式运行并输出结果。命令在终端输出基于原会话上下文的结果,执行结束后返回外层脚本或终端。成功标志:
结果上下文不对时先停掉自动化,不要批量继续运行;回到交互终端用失败处理:
claude -r确认目标会话,再为自动化选择更明确的恢复方式。
需要试验分支时派生新会话
-
准备从旧上下文继续分析,但后续尝试不应继续使用原会话 ID,例如要比较两套修复方案。
入口位置:
在 continue 或 resume 命令中加入主要动作:
--fork-session,例如claude -r "。" --fork-session "尝试另一套方案" 新会话保留恢复时的上下文,同时获得新的会话 ID;后续消息进入派生会话,不再延长原会话记录。成功标志:
若发现仍在原会话中,先退出并确认命令确实同时带有失败处理:
--fork-session和-r或-c。不要在已经写入多条消息后再把原会话当作未改动基线。
恢复完成后逐项核对
- 终端位于原项目目录或同一项目的 Git worktree。
项目正确:
- 最近会话使用
路径选对:
-c,指定会话使用-r、名称或 ID。 - 恢复后看到的任务、文件和讨论与预期相符,没有在错误会话里追加消息。
上下文一致:
- 知道
范围理解正确:
/add-dir会影响 continue、选择器和名称搜索,ID 搜索则限定在当前项目及其 Git worktree。 - 选择器中的
后台标记已辨认:
bg会话已经结合任务内容核对。 - 人工接续使用交互模式,脚本接续才使用
交互方式匹配:
-c -p。 - 试验性工作通过
原会话需要保留时已派生:
--fork-session获得新会话 ID。 - 4 张当前官方页面截图均可打开,分别证明 continue 命令、continue 范围、resume 搜索规则和按 ID 或名称恢复的命令形式。
配图证据完整: