代码之家  ›  专栏  ›  技术社区  ›  Christian Specht

将Mercurial存储库“重置”到版本X的最快方法(无需克隆)

  •  8
  • Christian Specht  · 技术社区  · 14 年前

    比如说,我克隆了一个远程Mercurial存储库(通过本地网络,甚至通过Internet)来尝试一些东西。
    我在我的克隆中工作,做了一些提交…然后我意识到我的更改没有意义,我必须重新开始。


    最简单的方法是制作一个新的克隆,然后HG通过网络再次复制整个回购协议和整个历史。

    我试图在同一个文件夹中创建一个新的克隆(希望HG能够识别这个,并且只更新已更改的文件和历史记录),但这似乎也复制了整个repo。

    我可以“hg rollback”,但这只回滚最后一次提交。如果我做了几次提交,我只能撤消最后一次。因此,我无法将回购重置到我开始提交之前的水平。

    有什么想法吗?
    真的没有别的办法,只能再次克隆整件事吗?
    (注意:使用TortoiseHg的解决方案会很好…我更喜欢它而不是命令行)

    3 回复  |  直到 14 年前
        1
  •  18
  •   Ry4an Brase    14 年前

    hg strip 正如gizmo所建议的,但传统的方法是再次克隆——不是从远程回购,而是从您自己的本地回购。例如,如果签出是“存储库”,并且添加了您不喜欢的变更集99和100,您会:

    cd ..
    hg clone -r 98 respository repository-scrubbed
    mv repository respository-with-crap-I-do-not-want
    mv repository-scrubbed repository
    

    这应该是近乎瞬间的。

        2
  •  8
  •   StayOnTarget    6 年前

    Strip Extension

    有关更多信息,请访问 Strip command

        3
  •  1
  •   Kimvais    14 年前

    hg update -r <changeset number> hg update -r 1 第二个版本。你可以用 hg log 查看您想要的版本