hg:在进行本地更改时撤消旧提交的签出

时间:2016-10-25 10:31:09

标签: mercurial commit

使用mercurial,我经常遇到以下无法安全解决的问题:

  1. 我执行hg commit -m "my changes"
  2. 的更改
  3. 我编辑了一些文件
  4. 我检查了hg checkout -r -15
  5. 的旧提交

    问题是在(2)和(3)之间,我忘了先提交我未提交的更改。 mercurial然后尝试将我的本地更改合并到旧提交中。

      

    如何撤消(3)中的结账并返回第(2)阶段?

    这是,我想再次让最后一次提交成为(1)中的提交,并且仍然希望在(2)中进行未提交的本地更改。

1 个答案:

答案 0 :(得分:1)

  

我如何

简短回答

Nohow

更长的答案

无论如何,您无法恢复工作目录的确切状态。但你可以:

  • 使用脏工作目录阻止hg up(使用未提交的更改):将别名中的更新重新定义为hg up -c
  • 在更新前将WIP存储在shelve | MQ中:使用两个连续命令重新定义(再次)命令作为shell-alias。恢复更改仍然是你的手工