gpt4 book ai didi

Mercurial:如何撤消最后一次未推送的提交?

转载 作者:行者123 更新时间:2023-12-03 08:17:33 28 4
gpt4 key购买 nike

我不小心提交了我的本地存储库。更具体地说,当我打算一次提交一个文件时,我一次提交了对许多文件的更改。

如何撤消此提交并将我的工作副本恢复到提交之前的状态,以便我可以做我应该做的事情?

自提交以来,我没有推或拉或其他任何东西。

你可能怀疑这是重复的,所以我会解释为什么下面的问题不同,或者不回答我的问题:

Mercurial undo last commit

对此的回答指出,您可以使用 hg commit --amend 执行此操作,但没有解释如何或给出这样做的例子。 mercurail 帮助也没有为我解释清楚。

How do you "rollback" last commit on Mercurial?

使用状态 hg rollback .这个命令显然已被弃用,我还是尝试使用它,但我得到了消息:没有可用的回滚信息。可惜这不起作用,因为这将是实现我想要的真正直观的方式。

最佳答案

基于来自 this question 的信息:
hg strip --keep --rev .--keep: do not modify working directory during strip--rev . (点表示最后一次提交。阅读 sid0 关于后代的回答)

对于更熟悉git语言的人,你正在寻找git reset --mixed HEAD^hard这会丢弃您的更改,使您的工作“消失”(我认为这不是一种选择)
soft将撤消提交,但保留以前提交的文件索引(即跟踪)
mixed将更改的文件保留在原位,但告诉索引撤消提交。在 git-speak 中:git st会说 Changes not staged for commit
另见 git-reset docs , Difference git reset soft/mixed , git/hg Command equivalence table

关于Mercurial:如何撤消最后一次未推送的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31223639/

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