首页/文章/Claude Code 2.1.309 起:sed -i 改文件后 /rewind 撤不回来了

Claude Code 2.1.309 起:sed -i 改文件后 /rewind 撤不回来了

· Zumac.Ai

帖子说了什么

@RealAlexandreAI 提醒:Claude Code 2.1.309 把 sed -i 改成了普通 Bash 命令——按你写的原样跑,不再当成「文件编辑预览」。结果是:以前习惯按 Esc Esc 或 /rewind 撤掉的 sed 改动,现在撤不回来。若 Agent 还在用 sed 改生产目录,撤销手段只剩 Git,不是会话回退。@Aongkou、@sisiliu517 也强调同一边界:大改前先提交;能用内置编辑工具就别走 sed -i;回退后立刻 git diff 核对。

对照官方说明

我们核对了 Claude Code CHANGELOG v2.1.309 原文:

  • Changed sed -i to get the standard Bash prompt and run as written, not a simulated file-edit preview; like other Bash edits, it is no longer restored by /rewind.

也就是说:这不是社区传闻,而是官方明确的行为变更。/rewind 主要追踪本会话里文件编辑类工具动过的文件;纯 Bash(含现在的 sed -i)改动,本来就不该当成时光机。以前 sed -i 被「模拟成编辑」时还能蹭到回退,2.1.309 起这条捷径没了。

另有一篇讲 /rewind 撤不回 rm 等 Bash 操作的文章,侧重无人值守清理;本文只钉住 sed -i 这一条从「可 rewind」变成「不可 rewind」 的变更。

你可以立刻做的几件事

  1. 确认版本:claude --version,若仍低于 2.1.309,先搞清楚升级后 sed 行为会变。
  2. 大改、批量替换前先 git commit(或开分支 / worktree),提交信息写清意图;不要指望 Esc Esc 救命。
  3. 能用 Write / Edit 就别让 Agent 用 sed -i;在项目说明里写一条硬规则,减少「静默改文件却进不了 rewind」。
  4. 每次 /rewind 或误操作后立刻 git status + git diff,确认哪些路径其实从没被会话快照罩住。
  5. 生产目录、含密钥的配置:禁止无人值守 sed;必要时用 deny / hook 拦高风险 shell 模式。

小结

/rewind 从来不是完整备份。2.1.309 之后,连曾经「看起来像文件编辑」的 sed -i 也退出了回退范围。把 Git 检查点 当成默认撤销键,比依赖 Esc Esc 更稳。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服