【问题标题】:How do I roll back all or part of a commit to svn?如何回滚全部或部分对 svn 的提交?
【发布时间】:2009-05-07 08:28:41
【问题描述】:

如何使用 TortoiseSVN 恢复全部或部分 SVN 提交?

【问题讨论】:

    标签: svn tortoisesvn rollback


    【解决方案1】:

    首先,您需要确定您想要还原修订版的“所有更改”,还是仅还原单个文件。 TortoiseSVN 只有“1 或全部”的方法;这意味着,您可以恢复整个签入集或单个文件:而不是部分签入。

    整个变更集

    因此,如果恢复特定版本(并且您希望更改该变更集中的所有文件),您将需要右键单击 -> TortoiseSVN -> 显示日志。找到要回滚到的修订/变更集,右键单击该修订“恢复到此修订”。

    还有一个您可能感兴趣的选项,即“从该修订版还原更改”,它将在该修订版和您当前的版本之间进行差异合并,并仅合并差异。我发现这有时更有吸引力;所以,我可以在变更集之间保留所有更改。

    单个文件

    另一个选项是还原单个文件。您将再次右键单击 -> TortoiseSVN -> 显示日志;但这一次,您可以选择单个文件。

    TortoiseSVN 不允许您在变更集中选择多个文件来恢复。要么全部,要么只有 1 个。

    变更集签入

    对于所有其他阅读,请确保“签入”仅涉及与该更改相关的文件。这应该是当今的普遍做法;但是,我仍然发现开发人员在一天结束时“枪杀”签入,将当天的所有更改捆绑到一个签入中。

    我对那些斜视的开发者感到很满意。 -_^

    【讨论】:

      【解决方案2】:

      如果你想恢复之前的提交(revision):

      使用资源管理器:

      1. 右键单击要还原的文件/文件夹,
      2. TortoiseSVN->显示日志,
      3. 右键单击不需要的修订,
      4. “恢复此版本的更改”,
      5. 提交->确定。

      如果您想撤消本地所做的更改(未提交)

      使用资源管理器:右键单击文件,TortoiseSVN->Revert。

      【讨论】:

        【解决方案3】:

        与 Bartek 所说的不同,您可以签出本地工作副本的特定修订,然后将其提交回头部。

        【讨论】:

          【解决方案4】:

          请注意,您只能在签入新修订版的意义上“恢复”,该修订版不再包含您想要恢复的更改。这在其他答案中有所描述。

          您可以实际撤消签入(如“从未发生过”),旧状态仍将保留在存储库的历史记录中。

          真正撤消/删除东西是一项长期存在的功能要求:

          http://subversion.tigris.org/issues/show_bug.cgi?id=516

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-08-14
            • 2021-04-23
            • 1970-01-01
            • 2010-09-14
            • 1970-01-01
            • 2021-10-02
            • 1970-01-01
            相关资源
            最近更新 更多