撤消一个hg push(backout?)

撤消一个hg push(backout?)

我做了一个大哎呀,可以用一些帮助撤消它。

我们有两个存储库 - 一个相当稳定的存储库,以及我们正在处理更改的存储库。我刚刚在我们的稳定存储库中修复了一个缺陷,并将其移动到工作仓库。 我从稳定版本库中取出,并入,然后意外地推到稳定版本库。

稳定的存储库现在看起来像这样:

*merge
| \
|  \
|   *b
*a  |
|  / 
*c

其中a是应该是稳定存储库的提示,b是我们在开发存储库中完成的所有内容,c是我们分支开发存储库的要点。

我该怎么做呢回到:

*a
|
*c

(我知道我不能真的让改变消失,我只是在寻找功能结构...)

我读过一些让我认为hg回退是我需要的命令的东西,但我不确定它是做什么的。

采纳答案:

hg rollback恢复最后一个事务,所以你会留下未完成的合并,你必须使用hg update -C才能出来。

如果您不希望* b(您在另一个克隆中拥有),则启用内置MQ扩展并运行hg strip -r <*b> 。 它会摆脱* b和*合并。 默认情况下,它会保存备份,以防再次改变主意。


UPDATE(per @ Rudi的评论:抱歉我错过了“已经推”的部分)

由于合并已经被推出, 从来没有做过我以前提出的建议。 讨厌发展商的电子邮件将是最好的结果。

这样做:

hg up -r<*merge>
hg revert -r<*a> -a
hg ci -m "undo unintended merge"

或者你可以更犹豫:

hg up -r<*merge>
hg backout -r<*merge> --parent<*a>

参考更多解答:撤消一个hg push(backout?),转载请保留撤消一个hg push(backout?)

更多:tortoisehg