如何将文件还原为';最后签入';在Mercurial州?

如何将文件还原为';最后签入';在Mercurial州?,mercurial,undo,Mercurial,Undo,我在光盘上有一个假设的Mercurial存储库。我正在创建一个新功能,当我意识到我把正在处理的文件弄得一团糟,并想将该文件恢复到上次提交的状态时 我可以使用hg update刷新存储库中的工作副本,但这会更新每个文件 是否有一个mercurial命令可以只更新一个文件?我相信您可以键入hg revert/path/to/file/,它将只更新该文件。有一个mercurial命令可以还原文件hg revert这将还原任何更改。您还可以将文件名传递给它,例如hg revert fileNamehg

我在光盘上有一个假设的Mercurial存储库。我正在创建一个新功能,当我意识到我把正在处理的文件弄得一团糟,并想将该文件恢复到上次提交的状态时

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


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

我相信您可以键入
hg revert/path/to/file/
,它将只更新该文件。

有一个mercurial命令可以还原文件<代码>hg revert这将还原任何更改。您还可以将文件名传递给它,例如
hg revert fileName

hg revert fileName
将该文件还原回您所在的版本。 如果要还原所有更改,可以运行
hg revert--all

这两个文件都将生成fileName.orig文件,因此您可以保留要还原的更改,以防万一。如果要还原该文件而不是所有.orig文件,可以添加
-C
选项:
hg还原文件名-C

hg revert--all-C

不,就是Git在
Git checkout
中有这种奇怪的行为(在Mercurial中,
hg checkout
hg update
的别名)。我发现最好将
*.orig
添加到我的
.hgignore
文件中,然后把
.orig
文件留在周围。也许有一天我会需要它们:)如果它们打扰了你,那么你可以使用清除扩展来清理它们。