代码之家  ›  专栏  ›  技术社区  ›  ktm5124

如何在Mercurial中恢复到以前的提交,而不留下悬而未决的头或创建新的分支/修订?

  •  0
  • ktm5124  · 技术社区  · 6 年前

    我想回到变更集3526。(提示当前处于changeset 3640。)但在执行此还原时,我想满足以下条件:

    1. 我不想要任何悬挂的头或新的树枝。
    2. 我不想创建一个与3526匹配的新修订版——我希望回到3526修订版。

    我应该使用什么操作来完成上述操作?我知道您可以使用hgupdate、hgrevert和hgclone执行类似的操作。但我不确定应该使用什么命令,特别是在某些情况下,您最终会创建悬挂的头或新的分支。

    1 回复  |  直到 6 年前
        1
  •  1
  •   torek    6 年前

    如果你真的想这么做,你可以用 hg strip . 您可能需要提供多个修订参数,具体取决于您在 hg pull -r 3527 必须删除;是否删除所有后续修订取决于它们是否都是3527的后代。使用 hg log -G 有助于解决这个问题。)

    pull 操作。只有当您(a)不再从该存储库中提取数据或(b)进入该存储库并对其进行更改以便将来进行拉取时,它才会为您带来一些好处 该存储库不获取这些变更集。因此,如果您对现有的合并不满意,可以直接剥离合并然后再试一次。没有必要害怕一个分支机构中的多个主管,只要你知道你在用他们做什么。

    (您还应注意,您的本地顺序修订号(如3526)特定于 存储库。只要这是您正在使用的一个存储库,这并不重要:如果您登录到另一个系统,该系统具有您偶尔通过pull或push共享的存储库,请记住这一点。)