如何在Mercurial中将文件恢复到“最后一次提交”的状态?

32

我有一个虚构的Mercurial存储库在本地。我正在创建一个新功能,但是意识到我完全搞砸了正在工作的文件,并想将该文件恢复为其最后一次提交的状态。

我可以使用hg update命令从存储库刷新工作副本,但这会更新所有文件。

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

3个回答

39

有一个Mercurial命令可以还原文件。 hg revert 这个命令可以还原所有的改变。你也可以传递文件名给它,例如 hg revert fileName


15

hg revert fileName 会将该文件还原到当前所在的版本号。

如果你想撤销所有更改,可以运行 hg revert --all

这两个命令都会产生一个名为fileName.orig的备份文件,以便于在需要时恢复。如果您不想保留.orig文件,则可以添加-C选项:

hg revert fileName -C hg revert --all -C

1
我发现将 *.orig 添加到我的 .hgignore 文件中,然后只是保留 .orig 文件会更好。也许有一天我会需要它们 :) 如果它们困扰了你,那么你可以使用清理扩展来清理它们。 - Martin Geisler

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

1
不对,这是Git在git checkout上有这种奇怪的行为(在Mercurial中,hg checkouthg update的别名)。 - Martin Geisler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接