我不小心提交了我的本地存储库.更具体地说,当我打算一次提交一个文件时,我同时对大量文件进行了更改.
如何撤消此提交并将我的工作副本恢复到提交之前的状态,这样我就可以做我应该做的事情了?
提交后我没有推或拉或其他任何东西.
您可能怀疑这是重复的,因此我将解释为什么以下问题不同,或者不回答我的问题:
对此问题的回答表明,您可以执行此操作hg commit --amend,但不解释如何执行此操作或举例说明.mercurail帮助也没有为我说明.
国家使用hg rollback.这个命令显然已被弃用了,我还是尝试使用它,但是我得到了混乱:没有可用的回滚信息.遗憾的是,这不起作用,因为这将是一种非常直观的方式来实现我想要的.
mao*_*urf 43
根据这个问题的信息:
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,差异git reset soft/mixed,git/hg命令等价表
cro*_*bar 26
好的,我想我找到了答案,就是启用strip扩展,并使用以下命令:
hg strip -r -1 --keep
Run Code Online (Sandbox Code Playgroud)
这将从repostiory(-r -1位)剥离最后一个修订版,该--keep选项意味着不对工作副本进行任何更改.因此,您最终会得到一个与提交之前完全相同的工作副本,并且最终没有在存储库中提交.
我不是一个善变的专家,所以使用风险自负.
| 归档时间: |
|
| 查看次数: |
21737 次 |
| 最近记录: |