V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
masteryi
V2EX  ›  问与答

svn 怎么撤回某次提交?

  •  
  •   masteryi · 2019-02-12 16:03:46 +08:00 · 3335 次点击
    这是一个创建于 1871 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚开始没建分支,现在要把我加的新功能提交到新分支上,原来的撤回。回滚的话是不是别人后来的提交也没了。

    5 条回复    2019-02-13 09:57:06 +08:00
    msg7086
        1
    msg7086  
       2019-02-12 16:26:56 +08:00
    revert 掉你的提交。也就是产生两个完全相反的提交,跑完以后完全抵消掉。
    SVN 没有太灵活的底层编辑功能。要永久删除一个提交是可以的但是很麻烦……
    SoloCompany
        2
    SoloCompany  
       2019-02-12 21:01:53 +08:00
    如果不需要完全删除的话,可以采用这样的方式撤回

    svn cp folder@old folder
    svn commit -m ‘ revert folder to -r old'

    也就是说用一个旧版的状态覆盖当前的最新状态
    delectate
        3
    delectate  
       2019-02-13 02:27:05 +08:00 via Android
    google 搜索 ✘
    v2 提问 ✔
    masteryi
        4
    masteryi  
    OP
       2019-02-13 09:47:36 +08:00
    @SoloCompany 同事的提交是不是也被覆盖了
    SoloCompany
        5
    SoloCompany  
       2019-02-13 09:57:06 +08:00
    @masteryi #4 可以通知作者 cherry-pick 回来,但 svn 无法在 commit 时保留 meta 信息(除非使用后台操作),cherry-pick 后的 commit 日期信息和作者信息都会变了

    如果你的目的不是不希望看到历史的话,直接 svn merge -c -your-commit 就能实现回滚(反向 cherry-pick merge, 注意 revision 数字是负数),
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1053 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:11 · PVG 03:11 · LAX 12:11 · JFK 15:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.