gpt4 book ai didi

mercurial - 撤消 hg 推送(取消?)

转载 作者:行者123 更新时间:2023-12-02 19:18:24 25 4
gpt4 key购买 nike

我犯了一个大错误,需要一些帮助来撤销它。

我们有两个存储库 - 一个相当稳定的存储库,以及一个我们正在处理更改的存储库。我刚刚在我们的稳定存储库中进行了缺陷修复,并将其移至工作存储库。我从稳定存储库中拉取、 merge ,然后意外推送到稳定存储库。

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

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

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

我该如何返回:

*a
|
*c

(我知道我无法真正让更改消失,我只是在寻找功能结构......)

我读过一些东西,让我认为 hg backout 是我需要的命令,但我不太确定它的作用。

最佳答案

hg rollback恢复最后一个事务,因此您将留下未完成的 merge ,您必须使用 hg update -C出去。

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

<小时/>

更新(根据@Rudi的评论:抱歉我错过了“已推送”部分)

由于 merge 已经被推出,永远不要按照我之前的建议进行操作。来自其他开发者的仇恨电子邮件将是最好的结果。

这样做:

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>

关于mercurial - 撤消 hg 推送(取消?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com