【问题标题】:Undo an undesired merge in SVN撤消 SVN 中不需要的合并
【发布时间】:2013-07-01 11:03:40
【问题描述】:

我们有一个运行 SVN 的存储库。在某些时候,为了添加一个功能(我们称之为“分支”),我们从主干创建了一个开发分支(我们称之为“主干”)。

我们一直在做我们的工作并致力于分支,偶尔我们会将主干中所做的更改合并到分支中,以使其分支与主干保持最新。

在某个时候,主干中的 75051 到 77691 修订版被合并到分支中,并且提交继续在分支上进行,在分支中提交新代码。

但是现在我们希望分支是最新的,主干只更新到修订版 77089,也就是说,我们想要撤消由于我们所做的合并而导致的分支中的更改,但只是由于 rev77089-77691 而导致的更改,而不影响分支中完成的所有工作。由于主干中的 rev77089-77691,有什么建议可以恢复或撤消分支中的更改?非常感谢。

【问题讨论】:

    标签: svn merge tortoisesvn svn-merge


    【解决方案1】:

    除了 David W. 的回答(+1):如果您使用 TortoiseSVN,您可以打开您的branch 的日志(上下文菜单:显示日志),标记所有您不再使用网络并进行还原的修订(上下文菜单:还原此修订的更改)。

    【讨论】:

      【解决方案2】:

      您只需在 svn merge 命令中使用反向范围即可撤消更改:

      $ svn revert -R .   #Remove all changes made
      $ svn update        #and make sure up to date
      $ svn merge -r77691:77088 .
      

      这将从您的工作目录中删除从 77089 到 77691 的更改。

      或者您可以一次撤消合并一个修订:

      $ svn merge -c -77691 .
      $ svn merge -c -77690 .
      $ svn merge -c -77689 .
      

      【讨论】:

        猜你喜欢
        • 2011-03-26
        • 1970-01-01
        • 1970-01-01
        • 2015-04-05
        • 2011-03-10
        • 1970-01-01
        • 2014-06-10
        • 1970-01-01
        • 2010-12-26
        相关资源
        最近更新 更多