【问题标题】:How do I revert a file to 'last checkin' state in Mercurial?如何在 Mercurial 中将文件恢复为“上次签入”状态?
【发布时间】:2012-05-05 13:06:27
【问题描述】:

我在磁盘上有一个假设的 Mercurial 存储库。当我意识到我已经把我正在处理的文件弄得一团糟时,我大部分时间都在创建一个新功能,并且想要将该文件恢复到其上次提交状态。

我可以使用hg update 从存储库中刷新工作副本,但这会更新每个文件。

是否有可以只更新单个文件的 mercurial 命令?

【问题讨论】:

    标签: mercurial undo


    【解决方案1】:

    有一个 mercurial 命令可以恢复文件。 hg revert 这应该会恢复任何更改。你也可以给它传递一个文件名,例如hg revert fileName

    【讨论】:

      【解决方案2】:

      hg revert fileName 会将该文件恢复为您所在的版本。 如果您想恢复所有更改,您可以运行hg revert --all

      这两个都将生成 fileName.orig 文件,因此您可以保留要还原的更改以防万一。如果您想恢复文件并且没有所有 .orig 文件,您可以添加 -C 选项: hg revert fileName -C hg revert --all -C

      【讨论】:

      • 我发现最好将*.orig 添加到我的.hgignore 文件中,然后留下.orig 文件。也许有一天我会需要它们 :) 如果它们打扰到你,那么你可以使用 purge 扩展来清理它们。
      【解决方案3】:

      我相信你可以输入hg revert /path/to/file/<file name>,它只会更新那个文件。

      【讨论】:

      • 不,是 Git 对 git checkout 有这种奇怪的行为(在 Mercurial 中,hg checkouthg update 的别名)。
      猜你喜欢
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多