【问题标题】:Revert a branch merge to default in Mercurial在 Mercurial 中将分支合并恢复为默认值
【发布时间】:2011-12-21 23:43:11
【问题描述】:

我想恢复我用 mercurial 完成的合并,但我在 Google 中找到的网站上看不清楚。

我最新的 Mercurial 变更集是 0d9973c7ade3 - Merge 'feature/20' with 'default'.,我已推送,我想返回。

我要返回的变更集是 8dc9b342ea75,这是我想要恢复到的默认变更集。

我该怎么做?

【问题讨论】:

标签: mercurial


【解决方案1】:

既然您已经推送了合并,那么正确的解决方案很大程度上取决于有多少人使用您的“主”存储库以及您对他们的控制权。

如果您单独使用此存储库,则可以使用 MQ 扩展来剥离更改历史并完成它。为此,您需要完全访问存储库。

如果其他人正在使用存储库,它会更复杂。如果你想要一个“干净”的历史,你需要每个人的合作才能做到。如果无法做到这一点,您可以还原更改,但历史会留下痕迹。

清除历史解决方案

您必须在“主”存储库上激活MQ extension。然后你可以使用strip 命令删除所有不需要的提交:

 hg strip unwantedrevision

然后,您必须再次克隆存储库以删除所有已删除变更集。或者,您也可以剥离每个存储库上的变更集。

如果一个仓库在操作后仍然有历史变化,下次再推送。这就是为什么您需要每个拥有副本的人的合作。

其他解决方案

如果无法控制所有克隆,可以使用backout 命令。我帮不了你太多,我从来不用它。但是,链接的文档对我来说似乎很清楚。

祝你的问题好运:)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2021-10-24
  • 2012-02-15
  • 2012-02-07
  • 2012-06-09
  • 2010-09-08
相关资源
最近更新 更多