展开本页目录
开始前准备什么
- 下载现有折扣练习包,复制fixed为独立工作副本,保留原包。
- 已有可用Cline环境,记录扩展版本并确认Checkpoints启用;不为恢复操作重新创建不必要的凭据。
- 能运行该练习的Python原测试;模型步骤使用自己的已验证连接,可能产生费用。
- 保存通过基线
- 确认Checkpoint
- 识别错误改动
- 选择恢复范围
- 回读文件
- 复跑原测试
- 记录费用与边界
原创输入、可运行脚本、预期对照、截图原始 HTML 与验证记录。
对应本页任务与验证范围。
固定输入、修改范围与验收目标。
用于 diff 对照,非模型运行产物。
执行 before/fixed,并故意破坏临时副本验证失败。
真实 unittest 输出与退出码。
只在解压目录 before 内初始化 Git。
1. 用通过版本建立独立工作副本
解压现有练习包后,把fixed文件夹复制为checkpoint-working,用编辑器打开这份副本。保留原fixed和before作教材对照;不要在自己的业务仓库里故意制造错误。
在工作副本运行原测试,核对discounted(100,20)=80、discounted(80,0)=80、discounted(10,100)=0三组断言。先保存通过日志;如果基线未通过,停止恢复演练并核对文件。配图是原练习教材,不是本次新版客户端截图。
sh
cd checkpoint-working
python3 -m unittest -v2. 确认Cline工作区和可恢复的Checkpoint
记录编辑器、Cline扩展版本和当前模型;在设置中确认Checkpoints已启用。新建任务,先让Cline只读取app.py与test_app.py并说明折扣含义,暂不改文件。
在会话中确认能找到正确文件状态对应的Checkpoint。Compare应能说明该点的文件情况;没有目标Checkpoint时,不能先改坏文件再假设能恢复。Checkpoint与项目普通Git提交是不同记录。
3. 只在练习副本制造一次可识别的退化
先在Plan核对任务范围,再转Act审阅改动。为了练习回退,可以要求Cline仅在这份副本中把实付金额误改为减免金额,不改原测试;也可使用自己已经观察到的同类错误。
看清实际写入的app.py,再运行同一测试保存失败结果。这里是让读者执行的受控练习,本页没有新增Cline模型会话、付费请求或恢复实测。
text
仅在当前折扣练习副本操作。
这次用于恢复演练:只修改app.py,使discounted返回减免金额而非实付金额。
不要改test_app.py,也不要修改其他文件。先展示计划和diff,等待我确认。4. Compare错误改动,再按恢复范围选择
找到错误修改之前、文件已通过检查的Checkpoint,先Compare确认恢复点。当前两份官方文档的按钮名并不完全一致,以下按它们描述的功能对应;实际操作以你的版本菜单说明为准。
| 你要恢复什么 | Checkpoints专页名称 | IDE入门页名称 | 恢复后仍需检查 |
|---|---|---|---|
| 只恢复文件,保留讨论 | Restore Files | Restore Workspace Only | app.py回到目标内容,会话仍保留 |
| 只恢复任务会话,保留现有文件 | Restore Task Only | Restore Task Only | 不能据此声称代码已恢复 |
| 文件与会话一起回到目标点 | Restore Files & Task | Restore Task and Workspace | 两类状态都符合目标点 |
- 你要恢复什么
- 只恢复文件,保留讨论
- Checkpoints专页名称
- Restore Files
- IDE入门页名称
- Restore Workspace Only
- 恢复后仍需检查
- app.py回到目标内容,会话仍保留
- 你要恢复什么
- 只恢复任务会话,保留现有文件
- Checkpoints专页名称
- Restore Task Only
- IDE入门页名称
- Restore Task Only
- 恢复后仍需检查
- 不能据此声称代码已恢复
- 你要恢复什么
- 文件与会话一起回到目标点
- Checkpoints专页名称
- Restore Files & Task
- IDE入门页名称
- Restore Task and Workspace
- 恢复后仍需检查
- 两类状态都符合目标点
5. 回读恢复后的文件,再运行原测试
选择明确说明“恢复文件/工作区”的选项后,重新打开app.py,核对恢复的是实付金额逻辑,再在同一checkpoint-working目录复跑未改过的test_app.py。
三组折扣断言应恢复到基线结果;还要确认测试文件没有为了通过而变化。下载包fixed的通过日志是教材记录,不能替代这次实际工作副本的退出码和文件内容。
sh
python3 -m unittest -v6. 参考校验只在未修改的原教材副本运行
第5步才验收你的恢复结果:在checkpoint-working运行未改过的test_app.py。这个工作副本只从fixed复制而来,不包含教材根目录的verify.py;不要在这里直接运行该脚本。
如果还想核对作者教材,请把原lesson.zip另外解压到全新的参考目录,不修改里面的before和fixed,再从这个参考目录的根目录打开终端。verify.py检查的是原before预期失败、fixed预期通过,并执行临时负例;它不能证明你在Cline中完成了Checkpoint恢复。
下图和已有run-log.json是原教材校验记录,不是本次工作副本或原生Cline会话的结果。无需参考校验也可按第5步完成自己的恢复验收。
sh
# 仅在重新解压且未修改的参考教材根目录
# 当前目录应同时有 verify.py、before/ 和 fixed/
python3 verify.py7. 记录恢复范围、剩余问题与调用费用
保存实际Cline版本、Checkpoint位置、所选菜单及其功能、恢复前后app.py、原测试结果和会话是否保留。没有执行原生恢复时就写“未执行”,不拿手工拷贝文件替代Checkpoint记录。
Checkpoint只处理相应文件/任务状态;已经发送的模型请求、重试和后续修复费用需另查平台记录。本轮没有新增付费运行。包内init-git.py只针对原before目录,本工作副本无需在恢复之后运行它来证明Checkpoint有效。
text
扩展版本 / 模型:
目标Checkpoint与选择的恢复范围:
恢复前失败与恢复后测试结果:
测试文件是否保持原样:
会话是否保留:
全部模型请求 / 实扣:未核对时留空怎样确认已经完成
- 目标Checkpoint存在且指向所需文件状态,不把教材参考文件冒充真实快照。
- 只恢复文件时app.py回到预期内容,原测试未改,80/80/0三组断言通过。
- 文件恢复、任务会话恢复与普通Git回退分别记录;所选范围与实际结果一致。
- 新增内容为官方资料核对与操作合同,未新增原生Cline恢复或付费模型实测。
常见问题
离线测试通过代表 AI 工具已经执行了吗?
不代表。参考补丁是人工编写,测试在本机真实运行;自己的 Cline 模型会话需按操作步骤另行执行。
如何判断工具偷偷扩大修改范围?
查看 git diff --name-only 与逐文件 diff;把测试和只读输入恢复到下载原版,再运行同一检查。
Restore Files 和 Restore Workspace Only 是同一个入口吗?
当前官方Checkpoints专页写Restore Files,IDE入门页写Restore Workspace Only,均描述只恢复文件并保留会话。界面名称可能不同;记录实际扩展版本,按菜单说明确认范围,不靠按钮相似就执行。
Restore Task Only 能修复已经改坏的文件吗?
不能。它调整任务会话而保留当前文件。要恢复代码,选择明确说明会恢复文件或工作区的选项,再回读app.py并运行原测试。
为什么先打开fixed副本而不是before?
这次要验证从错误修改回到通过状态。先用fixed建立已知正确的工作副本,确认存在对应Checkpoint,再进行受控修改;只运行下载包参考文件不能证明Cline恢复成功。
恢复文件后要重新配置或充值API吗?
文件恢复与模型接入分开处理。现有连接正常就先完成恢复与测试;继续让模型修改可能产生新请求,全部用量和实扣另核,不把回退当成账单撤销。

