gpt4 book ai didi

version-control - 使用未提交的更改从 "hg update"恢复

转载 作者:行者123 更新时间:2023-12-04 10:25:09 25 4
gpt4 key购买 nike

我在使用 Mercurial 时一直遇到以下问题,这很烦人:

  • 我正在修订 A。
  • 我有本地更改,我打算在 A 之上提交或修改,但还没有。
  • 我想去某个修订版 B,但我忘记了我有本地更改!
  • 我愿意 hg update B . Mercurial “有帮助地” 尝试重新调整我的本地更改以应用于 B 之上。这通常会导致冲突,现在它要求我修复冲突。

  • 但是,我不想解决冲突!我根本不希望我的本地更改应用于 B 之上。我希望它们留在 A,或者作为 A 之后的新提交,或者修改为 A,视情况而定。

    有什么办法可以从这种状态中恢复过来吗? 我知道的唯一方法是
  • 修复 B 处的合并冲突
  • 回到A,再次发生合并冲突
  • 再次修复 A
  • 处的合并冲突
  • 在 A 提交我的更改并返回 B

  • 这是很多工作,而且毫无意义。我不应该重新调整我的本地更改以应用于 B 之上,只需再次重新调整它们以应用于 A 之上。

    如果没有更好的方法可以从这个错误中恢复过来,有没有办法 获取 hg当您有本地更改时拒绝更新 ?我从不想那样做——如果我想要,我只需提交本地更改并将它们重新设置在 B 之上。

    最佳答案

    在某处更新后取回脏文件并返回有点棘手。 “技巧”是确保您的工作副本在第一次更新后具有脏文件。

    所以在你做完之后

    hg update $SOMEWHERE

    发现困惑因为 Mercurial 开始打开合并工具,冷静地关闭合并工具然后运行
    hg resolve --unmark --all
    hg resolve --all --tool internal:local

    由于您对它们进行了更改而合并的所有文件现在看起来就像它们在您的脏工作副本中所做的一样。这包括完全合并的文件和系统提示您合并的文件。现在可以更新回来:
    hg update $BACK
    hg resolve --unmark --all
    hg resolve --all --tool internal:local

    你现在应该回到你开始的地方。如果您在第一次更新后修改了文件,那么它就是您在第二次解析后看到的修改后的版本。这就是您希望在第一次更新后解析文件的原因。

    关于version-control - 使用未提交的更改从 "hg update"恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22392001/

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