【问题标题】:hg: undo checkout of old commit while having local changeshg:在进行本地更改时撤消旧提交的签出
【发布时间】:2017-03-07 08:44:09
【问题描述】:

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

  1. 我通过hg commit -m "my changes" 提交了我的更改
  2. 我编辑了一些文件
  3. 我检查了一个旧的提交做hg checkout -r -15

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

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

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

【问题讨论】:

    标签: mercurial commit


    【解决方案1】:

    我该怎么做

    简答

    不知道

    更长的答案

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

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

    【讨论】:

    • 我发现无法撤消结帐是有线的。但我喜欢你让脏工作目录无法更新的方式,谢谢!
    猜你喜欢
    • 2016-12-13
    • 2012-05-03
    • 2015-05-29
    • 2011-08-20
    • 1970-01-01
    • 2018-05-01
    • 2016-05-23
    • 2023-03-14
    • 2021-09-30
    相关资源
    最近更新 更多