masteryi
V2EX  ›  问与答

svn 怎么撤回某次提交?

  •  
  •   masteryi · Feb 12, 2019 · 4600 views
    This topic created in 2825 days ago, the information mentioned may be changed or developed.

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

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

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

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

    如果你的目的不是不希望看到历史的话,直接 svn merge -c -your-commit 就能实现回滚(反向 cherry-pick merge, 注意 revision 数字是负数),
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1454 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:23 · PVG 13:23 · LAX 21:23 · JFK 00:23
    ♥ Do have faith in what you're doing.