Claude Code 目前还没有很方便的 Rollback/Checkpoint 吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tlerbao
V2EX    问与答

Claude Code 目前还没有很方便的 Rollback/Checkpoint 吗?

  •  
  •   tlerbao 71 天前 1400 次点击
    这是一个创建于 71 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 Cursor/Augment Code 中有很方便的 Keep(Accept)/Undo(Reject) 功能,并且每次对话都有 Checkpoint 可以随时回滚,但是似乎目前 Claude Code 好像没有类似功能呢?

    有人说用 Git ,这就很麻烦了,Cursor 的自动 Checkpoint 可以随意回滚,在迭代过程中,不可能每一次对话都 commit 一次,会产生 N 多无用 commit 记录不说,最后也是麻烦,一般只有一个功能节点完成了才 commit 。

    和 AI 对线的时候不知道什么时候他就跑偏了,你可能想回到之前的某一次对话重新来过哈哈。

    16 条回复    2025-10-04 15:54:01 +08:00
    kaichen
        1
    kaichen  
    PRO
       71 天前
    > 在迭代过程中,不可能每一次对话都 commit 一次,会产生 N 多无用 commit 记录不说,最后也是麻烦,一般只有一个功能节点完成了才 commit 。

    每次都 commit 不是问题,后面可以让 claude code 整理成更合适的颗粒度;

    另外完成功能节点作为一个 github pull request ,用 squash merge 就会合并成一个 commit 。
    lthon
        2
    lthon  
       71 天前
    按两下 esc ,可以回退到之前的对话节点
    ETiV
        3
    ETiV  
       71 天前 via iPhone
    有 hooks ,可以在 post tool use 之后自动 git commit

    https://docs.anthropic.com/en/docs/claude-code/hooks-guide
    tlerbao
        4
    tlerbao  
    OP
       71 天前
    @kaichen 迭代的过程中很可能:说帮我做杯咖啡 -> 不太对太甜了 > 太苦了 > 怎么臭了,回到帮我做一杯不太太甜别太苦绝对不能臭的咖啡,可能一次成了;

    在 cursor/augment code /copilot 等可以随意 rollback ,不然我要养成每一次对话不管大小,一个小修改也要 commit 一下?肯定是麻烦的的一 B ,最后怎么 squash merge 也是麻烦,麻烦它就是麻烦,怎么曲线救国也没用。

    目前没有就等等吧,看看不会会自我迭代。
    tlerbao
        5
    tlerbao  
    OP
       71 天前
    @lthon 按两下 esc 并不会回滚代码
    shmilypeter
        6
    shmilypeter  
       71 天前
    这也是我一个关心的问题,其实在 cursor 里也可以用 claude 4 opus 模型(当然就是有亿点点贵),但是据说 cursor 的上下文没有 claude 那么长
    tlerbao
        7
    tlerbao  
    OP
       71 天前
    @shmilypeter cursor 如果 agent 要赶上 claude code 好用,感觉可能要开 max ,cursor 不是不好用,是变相涨价了,要买更高的套餐 使用 max 才行
    lthon
        8
    lthon  
       70 天前
    对话跟代码绑定吗?我其实有时候会在对话中手动修改代码,这样回滚会不会出问题?
    yellowsky
        9
    yellowsky  
       70 天前
    直接跟 claude code 说回滚就可以
    kaichen
        10
    kaichen  
    PRO
       70 天前
    @tlerbao #4 随意回滚,可以让 claude code 帮你做,也可以自己手动用 git 操作。

    当然这可能是使用习惯问题,我个人之前对 cursor 这种体验就不太习惯,还是习惯完全用 git 。
    tlerbao
        11
    tlerbao  
    OP
       70 天前
    @lthon #8 claude code 不知道,cursor 只会滚它修改的
    tlerbao
        12
    tlerbao  
    OP
       70 天前
    @kaichen 肯定是麻烦,尤其前端微调对线,可能 N 次对话改一小块东西,然后越来越偏离,先回滚到三次对话以前,或五次对话以前,按您的操作方式,这中间可能产生了 5 次 commit ,

    cursor 的话只需要在对话列表里找到对话后面的 checkpoint 按钮,一点就会滚了,方便这块绝对不是一个量级的
    qping
        13
    qping  
       70 天前 via iPhone
    为啥不用 cusor 了
    tlerbao
        14
    tlerbao  
    OP
       67 天前
    @qping 我有 cursor ,我要双持
    marcolin18
        15
    marcolin18  
       57 天前
    这方面确实 cursor 更好用,官方 repo 上的 issue 其实 3 月份就提了: https://github.com/anthropics/claude-code/issues/353
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2844 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 00:23 PVG 08:23 LAX 17:23 JFK 20:23
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86