【问题标题】:Undo an accidental hg strip?撤消意外的汞条?
【发布时间】:2018-04-26 17:39:13
【问题描述】:

我不小心运行了 hg strip,并删除了一堆提交。从那以后我没有在回购中做任何事情。有没有办法让我恢复这个提交堆栈,撤消我刚刚运行的 hg 条?

【问题讨论】:

    标签: mercurial undo revert


    【解决方案1】:

    只要您没有使用--no-backup 选项运行剥离,就可以在.hg\strip-backup 下的存储库中找到剥离的变更集。如果您按日期对目录内容进行排序,那么最新的内容可能就是您需要恢复的内容。用hg unbundle <filename>恢复它。

    【讨论】:

    • 我爱你。这条信息节省了数小时的重做工作。
    【解决方案2】:

    可以从剥离备份文件中使用hg pull 作为使用hg unbundle 的替代方法。

    正如对该问题的另一个答案的评论中所述,hg unbundle 的选项较少,仅适用于捆绑包,但一次可以解开多个捆绑包。而hg pull 可以从单一来源(共享/网络/捆绑)中提取并具有其他选项

    这是一个使用 hg pull 的示例,基于 Isaac Jurado 的 an external post

    通常备份放在REPO/.hg/strip-backup/。见 下面的例子:

     $ hg glog
     @  changeset:   2:d9f98bd00d5b tip
     |               three
     o  changeset:   1:e1634a4bde50
     |               two
     o  changeset:   0:eb14457d75fa
                     one
     $ hg strip 1
     1 files updated, 0 files merged, 0 files removed, 0 files unresolved
    
     saved backup bundle to
     /Users/hchapman/ttt/.hg/strip-backup/e1634a4bde50-backup.hg
    

    然后,恢复这些变更集的方法是:

    $ hg pull $(hg root)/.hg/strip-backup/e1634a4bde50-backup.hg
    

    【讨论】:

      【解决方案3】:

      这是unbundle from an external post 的一个工作示例。我已经稍微清理了它以使其更通用:

      使用 Mercurial 时恢复剥离的文件

      如果您不小心剥离了补丁并且没有备份,您 仍然可以使用 Mercurial 恢复您的文件。要恢复您的文件:

      打开 Microsoft Windows 命令提示符窗口。

      导航到您剥离文件的项目文件夹。

      运行dir 命令

      导航到 Mercurial 存储所有相关项目的 .hg 文件夹 文件。

      再次运行dir 命令。

      导航到 Mercurial 存储备份的 strip-backup 文件夹 成捆的剥离补丁。

      再次运行dir 命令。目录中显示多个文件 使用<hash>-hg 格式。它们是剥离的备份包 补丁。

      使用 Windows 资源管理器查找所需文件。打开strip-backup Windows 资源管理器中的文件夹,并按修改日期降序排序。 除非已知必要的备份包,[建议] 以相反的时间顺序恢复包开始 来自最新的捆绑包。

      导航回项目文件夹。

      要恢复捆绑包,请运行 hg unbundle .hg\strip-backup\<bundle_file_name>。 ...您可能希望将其添加到 PATH 环境变量,使其可全局访问。

      同步项目 [使用hg pull] 以查看恢复的补丁。如果 恢复的补丁不是需要的,然后继续恢复 按时间倒序排列补丁,直到需要的补丁 检索到。

      注意:您可以按任何顺序恢复备份包,而不是 使用逆时间顺序。但是,这样做可能并不安全 所以。您最终可能会尝试恢复备份包,该包具有 依赖于另一个尚未恢复的备份包。在 这种情况下会报错。

      【讨论】:

        猜你喜欢
        • 2012-08-12
        • 1970-01-01
        • 2014-03-07
        • 2010-10-19
        • 2018-10-02
        • 2019-09-25
        • 2014-10-23
        • 1970-01-01
        • 2013-01-01
        相关资源
        最近更新 更多