【问题标题】:svn: How to revert somebody else's commit?svn:如何恢复别人的提交?
【发布时间】:2015-03-31 18:12:42
【问题描述】:

啊,有人(好吧,我的老板)添加并提交了他目录中的所有文件,即所有 svn 文件:conf/、db/、format、hooks/、locks/...我使用的是 Tortoise,所以我尝试点击每一个并进行还原,它说好的,但在更新/提交后我仍然看到它们都在版本控制之下。

我们现在已经有了几个版本。我该如何清理? 谢谢

【问题讨论】:

    标签: svn tortoisesvn revert


    【解决方案1】:

    在 Subversion 中,“revert”意味着撤消对工作副本的未提交更改。您要做的是(有效地)撤消提交。这通常在 Subversion 中使用reverse merge

    完成

    假设您的老板在一次提交(修订版本 REVNUM)中完成了所有工作,您只需在工作副本中执行以下操作:

    svn merge -c -REVNUM URL_TO_REPOSITORY_LOCATION
    

    然后提交新版本。在 REVNUM 中所做的所有更改将不再在 HEAD 修订中可见,并且您的修订历史记录将显示已提交的更改,然后合并回来。

    使用 TortoiseSVN 合并上下文菜单项来逐步完成相同的过程。

    【讨论】:

    • 谢谢,下次我会知道的。由于我可以访问服务器,因此我进行了转储/恢复。那时我必须重新结帐,但没关系。
    • 转储/加载是您可以对您的存储库和用户做的最具破坏性的事情之一,除了做您必须做的事情的正确方法之外的任何事情。将其视为心脏直视手术 - 除非您不得不这样做,否则您不会参与其中。
    • 对于一个受众非常少的仓库(一个开发人员和他的老板,对吗?),这可以,不过;尤其是当机密文件已提交时,根本不能出现在其中。但是,repo ID 通常应该恢复到旧值(在恢复使用之前;不再是这种情况),尤其是当存在许多工作副本时。
    猜你喜欢
    • 2012-10-31
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多