工具大全
Claude 指南作者:Coocon2026年7月20日588 次阅读约 6 分钟阅读

Claude Code 怎么恢复之前的对话、回滚改错的代码?--continue / --resume / /rewind 用法,附 8 个进阶技巧

先回答你搜的问题(本机 Claude Code 2.1.285 核对过命令)

  • 恢复最近一次对话:在原来的项目目录下运行 claude -c(即 --continue)
  • 恢复更早的某次对话:claude -r 打开会话列表,或 claude -r 关键词 直接带搜索词;知道 ID 可以 claude -r <session-id>
  • 在会话里切换到别的旧会话:输入 /resume
  • 列表里找不到之前的对话:会话按启动目录分开存放(~/.claude/projects/<目录名>/*.jsonl),换了目录启动就看不到。先 cd 回原来的项目目录再 claude -r
  • 想接着旧会话试别的方案、又不想污染原会话:claude -r <id> --fork-session
  • 回滚改错的代码 / 退回到之前的对话:按两下 Esc 或输入 /rewind,选一个历史时刻,可以只退代码、只退对话,或者两个一起退(详见第 2 节)
  • 以后好找:启动时 claude -n 名字 给会话起名,中途用 /rename

会用 Claude Code 和用好 Claude Code 之间,隔着一批"官方文档里写了、但多数人从没打开过的页面"。这篇不讲入门(新手请看站内的 Claude Code 快速上手指南),只挑 10 个能直接改变工作流的进阶技巧,全部来自官方文档,每条按"怎么操作 → 什么时候用"的结构展开。

目录

  1. 给会话起名字,随时找回来
  2. /rewind:代码和对话分开回滚的时光机
  3. 上下文瘦身三件套:/clear、/compact、/context
  4. 按路径生效的规则文件(Path-Scoped Rules)
  5. 自动记忆:让 Claude 自己记笔记
  6. Headless 模式:把 Claude Code 接进脚本和 CI
  7. 结构化输出与成本核算
  8. 探索 → 规划 → 实现 → 提交的四段式工作流
  9. 富媒体上下文:截图、@文件、管道喂日志
  10. Skills:把重复流程固化成一条命令

1. 给会话起名字,随时找回来

多任务并行时最大的痛苦是"昨天那个改到一半的会话去哪了"。解法是从一开始就命名:

claude -n payment-refactor     # 启动时命名
/rename payment-refactor       # 会话中途改名
claude --continue              # 恢复最近一个会话
claude --resume                # 打开会话选择器,按名字挑

配合 /branch <name> 还能从当前对话分叉出一个副本——主线继续改代码,分支去试另一个方案,两边共享此前的全部上下文。

适用场景:任何超过一天的任务、任何同时推进 2 个以上任务的人。

2. /rewind:代码和对话分开回滚的时光机

Claude Code 会在你每次发消息时自动打快照(checkpoint)。当它改崩了代码,你不需要手动 git stash 抢救:

  • 按 Esc 两下或输入 /rewind 打开回滚菜单
  • 选择恢复到任意一个历史时刻
  • 关键是可以只恢复代码(对话记忆保留,Claude 还记得教训)或只恢复对话(代码保留,重新组织提问)

适用场景:让 Claude 尝试激进方案之前,你什么都不用做——快照是自动的,敢想敢试的底气就来自这里。注意 checkpoint 不能替代 git:它是会话内的撤销键,不是版本管理。

3. 上下文瘦身三件套:/clear、/compact、/context

长会话变笨、变贵的根源是上下文堆满了无关内容。三个命令对应三种情况:

命令 作用 什么时候用
/context 查看当前上下文占用明细 感觉响应变慢变贵时先诊断
/clear 清空上下文重新开始 切换到完全不相关的新任务
/compact 保留XX相关的决策 把历史压缩成摘要 任务没做完但上下文快满了

/compact 后面可以带指示语,告诉它压缩时重点保留什么——比如 /compact 保留数据库 schema 的设计决策,比无脑压缩效果好得多。

4. 按路径生效的规则文件(Path-Scoped Rules)

CLAUDE.md 大家都会写,但很多人把它写成了几百行的大杂烩——每个会话都全量加载,污染上下文。官方的解法是 .claude/rules/ 目录 + frontmatter 声明生效路径:

---
paths:
  - "src/api/**/*.ts"
---
# API 开发规范
- 所有端点必须做输入校验
- 错误响应使用统一格式 { code, msg, data }

只有当 Claude 实际触碰 src/api/ 下的文件时,这份规则才会被加载。CLAUDE.md 留给全局共识(技术栈、构建命令),模块规范全部下沉到 rules。

适用场景:中大型代码库、前后端混合仓库、规范特别多的团队。

5. 自动记忆:让 Claude 自己记笔记

Claude Code 默认开启自动记忆:它会把跨会话有价值的发现(构建命令的坑、调试出的结论、你的代码风格偏好)写进项目记忆目录,下次会话自动带上。

/memory        # 查看记忆索引和所有记忆文件

你要做的只有两件事:定期打开 /memory 删掉过时条目(错误的记忆比没有记忆更糟);发现它记了不该记的内容时直接说"忘掉这条"。

6. Headless 模式:把 Claude Code 接进脚本和 CI

-p 参数让 Claude Code 变成一个可编排的命令行工具,这是它和"聊天窗口"拉开差距的地方:

# 最简用法:一问一答,不进交互界面
claude -p "总结这个仓库的模块结构"

# CI 里跑:预授权工具,防止卡在确认上
claude -p "修复所有 lint 错误" --allowedTools "Bash,Edit"

# 管道组合:日志诊断流水线
cat error.log | claude -p "找出根因,按可能性排序"

适用场景:PR 自动审查、定时代码巡检、日志分析管道、批量重构脚本。原则是用 --allowedTools 给最小权限,而不是图省事全放开。

7. 结构化输出与成本核算

headless 模式配合 --output-format json,输出变成机器可解析的结构,还自带账单:

claude -p "列出本仓库所有对外 API" --output-format json | jq '.total_cost_usd'

每次调用花了多少钱一目了然。接进 CI 后建议把这个字段落进指标系统——LLM 自动化的成本不监控,迟早收到意外账单。需要实时处理输出流的场景用 --output-format stream-json。

8. 探索 → 规划 → 实现 → 提交的四段式工作流

官方最佳实践文档反复强调的节奏,对中大型任务收益巨大:

  1. 探索:先让它只读不写——"读一遍 src/auth,讲清楚现在的会话管理流程"
  2. 规划:进入计划模式(Shift+Tab 切换),产出实施方案,人工把关
  3. 实现:按批准的计划动手,同时给它验证手段——"跑测试,失败就修到全绿"
  4. 提交:确认无误后再让它写提交信息、开 PR

反模式是一句"把登录改成 OAuth"直接开干——没有探索和规划,它对"改到什么程度算完"的理解和你不一致,返工率极高。给验证手段是第 3 步的关键:有测试跑测试,没测试给它一个可复现的验证命令,它就能自己迭代到通过。

9. 富媒体上下文:截图、@文件、管道喂日志

四种往上下文里精准喂料的方式,比大段粘贴高效得多:

# 截图直接粘贴(Cmd+V / Ctrl+V)——UI bug 一图胜千言
# @ 引用文件,避免手动复制
@package.json 检查依赖里有没有已知漏洞的版本

# URL 直接给,Claude 会自动抓取
按照 https://code.claude.com/docs/en/hooks-guide 的写法帮我配一个 PostToolUse hook

# 会话内直接跑 shell 命令,输出自动进上下文
! npm test

最后那个 ! 前缀值得单独记住:命令在你的会话里执行、输出直接落进对话,省去了"跑完再粘贴结果"的循环。

10. Skills:把重复流程固化成一条命令

任何你对 Claude 说过三遍以上的流程,都应该变成 skill:

# .claude/skills/fix-issue/SKILL.md
---
name: fix-issue
description: 按标准流程修复 GitHub issue
disable-model-invocation: true   # 只允许手动触发
---

1. 用 gh issue view 读取 issue 详情
2. 定位相关代码,先复现问题
3. 实现修复,补回归测试
4. 跑全量测试,通过后总结改动

之后 /fix-issue 1234 一条命令就是完整流程。disable-model-invocation: true 表示只有你能触发;去掉这行则 Claude 在判断相关时会自动调用。团队把 skills 提交进仓库,新人第一天就继承全部工作流。

收尾:一张优先级表

如果你只想先改一件事 做这个
经常"找不到昨天的会话" 技巧 1:命名 + resume
怕 Claude 改崩代码 技巧 2:/rewind
会话越聊越笨 技巧 3:/compact
CLAUDE.md 已经几百行 技巧 4:path-scoped rules
想做自动化 技巧 6 + 7:headless + JSON 输出
大任务返工率高 技巧 8:四段式工作流

参考资料

相关文章

Claude Code 禁止 rm -rf 怎么配:deny 规则两周拦下 14 次,实测还有 7 种写法照样能删,一个 hook 补齐

为了防 Claude Code 误删文件,我在全局 settings 里加了一条 deny 规则 Bash(rm -rf *)。翻本机 10 月 7 日到 21 日的会话记录:这条规则拦下 14 次删除,模型被拒后 8 次换新目录名、6 次直接放弃删除,一次都没换写法绕过。但在 Claude Code 2.1.285 上用 stub 逐字回放 22 种删除写法后发现:rm -fr、rm -r -f、rm -Rf、rm -r 在手动、auto、bypass 三种模式下都照删不误,/bin/rm、find -delete、bash -c 在手动和 bypass 模式下也能删。auto 模式下,工作目录内的 rm -fr 会被当成「acceptEdits 也会放行」的操作,连分类器都不过。另一道闸是内置的 dangerous-rm 检查,目标是 $D/* 这类变量展开时触发,bypass 模式也拦;多行命令里前面有 heredoc,它就跟不上同一条命令里的变量赋值。文末给出一个 PreToolUse hook,三种模式下补齐全部递归删除写法,并告诉模型被拒后该怎么做。

claude-codehooks+5
pitfalls2026年10月21日7 min
208

Claude Code 接 DeepSeek / GLM / Kimi 开 auto 模式:temporarily unavailable 括号里的原因怎么看,哪些重试没用(故障注入实测)

用第三方模型跑 Claude Code auto 模式,每个有副作用的动作都会用你的会话模型向同一个后端多发一次判定请求:系统提示词 132,470 字符,单次约 2.97 万输入 token,比主循环那一步还多。判定请求一失败,就出现「xxx is temporarily unavailable, so auto mode cannot determine the safety of Bash」。本文用故障注入代理把每种失败对应的报错原文测了一遍:500 → (server error)、429 → (rate-limited)、529 → (overloaded)、断连 → (connection failed),这几种会自动重试 5 次;超过 60 秒没回 → (timed out);**没有括号 = 后端拒收(4xx),只试 1 次,重试多少遍都一样**;后端回了但模型没给判定 → could not evaluate,连续 3 次就退回人工确认。另外实测 CLAUDE_CODE_AUTO_MODE_MODEL 不生效,判定器只能跟着会话模型换。Claude Code 2.1.285,真实后端 DeepSeek v4-pro 与小米 MiMo v2.5。

claude-codedeepseek+7
pitfalls2026年10月11日11 min
643

Claude Code 上下文太长怎么办:Prompt is too long 会自动压缩,中转站 / DeepSeek 的 maximum context length 却不会(实测)

Claude Code 靠报错文案判断「上下文太长」:后端说 prompt is too long 或 input is too long for requested model,它会自动压缩对话后重发,用户无感;DeepSeek 和 OpenAI 风格中转返回的 This model's maximum context length is …,它不认识,直接报 API Error: 400,每轮都失败。手动 /compact 有效;更好的办法是用 CLAUDE_CODE_MAX_CONTEXT_TOKENS(非 claude- 模型 ID)或 CLAUDE_CODE_AUTO_COMPACT_WINDOW(claude- 模型 ID)告诉它真实上限,让它提前压缩。Claude Code 2.1.285 + 本地 stub 实测。

claude-codedeepseek+6
pitfalls2026年10月5日8 min
726

Claude Code 一直卡住、转圈没反应怎么办:后端不回时它要等 6 分钟,重试满 10 次可能卡一个多小时(实测)

Claude Code 转圈不动、或者停在 Retrying in 0s,多半是后端没有回数据。实测 2.1.285(API key + ANTHROPIC_BASE_URL):后端不回响应头时每次等 6 分钟(360 秒)才判超时,把 API_TIMEOUT_MS 调到 60 万、90 万也不变,只能调小;默认重试 10 次,总共可能卡一个多小时。中转站如果把回复缓冲到生成完才返回,超过 6 分钟的回复永远拿不到。按 Esc 可以随时中断。全部在本地 stub 上实测。

claude-code中转站+6
pitfalls2026年10月5日10 min
649