Skip to content

主线别被打断:/btw、/fork、/rewind 三个用法

Claude Code 一次会话拖久了,最亏的不是 token,是主线被旁边的问题带歪。问一句「这个目录是干什么的」,后面的实现就开始绕。想试另一个方案,又舍不得丢掉已经对齐的上下文。

这三个命令各管一件事:旁问、分叉、回退。它们都不是 /clear 的花式写法。

命令会随版本改。下面以官方文档和 2026 年仍公开的会话能力为准。你这台机器上没有某个命令时,在会话里输入 /help/ 搜一下,不要按旧教程硬敲。

/btw:问一句,别写回主线

长任务还在改文件,你突然想确认一个事实:抓取流程在哪、这个配置项谁在读、刚才那个假设对不对。

/btw 开一个旁路。它能读到主线程的上下文,但这段问答不会写回主线程。主线下一步该怎么走,不被这句旁问带跑。

text
/btw 这个项目的抓取流程是什么?

Desktop 的本地会话和 SSH 会话里,有时还有快捷键能开 side chat。云端会话的入口以当前界面为准,没有就用命令。

不要用它做第二件正事。旁问问完就回到主线。真要换一条实现路线,用下面的 /fork

/fork:从现在分出一条新路

讨论到一半,想试另一个方向,但原会话还要留着。/fork 从当前状态拉出一个新会话,原来的会话不动。之后两边的消息和执行各走各的。

和恢复历史不是一回事:

  • --continue / /resume 是回到旧会话接着聊。
  • /fork 是从眼下这一点复制出一条独立路线。

适合「这个方案先放着,我另开一条看用队列行不行」。不适合「刚才改坏了,我想回到改之前」——那是 /rewind

分叉会继承父会话当时的上下文。分出去之后,两边不再同步。不要在两条线上改同一批文件,除非你已经用 worktree 把目录隔开。

/rewind:回到刚才,而且可以只退一边

Claude Code 会按你的提示做检查点,记下会话状态和文件编辑快照。这不是 git 提交,也代替不了版本库。它只方便你在这一次会话里退回去。

快捷键是连按两次 Esc,或直接输入:

text
/rewind

文档里常见四个选项,你界面上的文案以当前版本为准:

  1. 回退代码和对话
  2. 回退对话,代码留下
  3. 回退代码,对话留下
  4. 从这一点开始压缩对话,腾出上下文

最有用的是第三条。试了一个方案,文件不满意,对话里已经说清了「这条路走不通」。回退代码、留下对话,就不用把需求再讲一遍,它也还记得刚才为什么失败。

/rewind 退不回 git 里已经提交的历史。检查点丢了、会话关了,还是靠分支和提交。

别和这两个搞混

你想做的事用这个不要用
长任务中途问一句,不影响下一步/btw直接在主线程里问
保留现在,另试一条路/fork/clear 后再讲一遍
文件或对话退回刚才某一步/rewind指望 /compact 把改动撤销
这件活结束了,下一件不想带旧上下文/clear/fork
还要接着干,只是上下文太满/compact/clear

/clear 是丢掉这轮对话历史,项目记忆还在。/compact 是压历史、留关键决定。两个都不会单独撤掉某一次文件修改,也不会把一句旁问隔离出去。

一条能直接用的顺序

复杂功能先进计划模式,对齐再改。改到一半要核对一个事实,用 /btw。想对比两个实现,先 /fork,或者另开 worktree,不要在同一目录里分叉两套改动。试崩了,用 /rewind 只退代码。这轮做完再 /compact,把决定写进 CLAUDE.md 或自动记忆。

Claude-cn.org,专注于 Claude Code 中文教程