我有一个虚构的Mercurial存储库在本地。我正在创建一个新功能,但是意识到我完全搞砸了正在工作的文件,并想将该文件恢复为其最后一次提交的状态。
我可以使用hg update
命令从存储库刷新工作副本,但这会更新所有文件。
是否有一个mercurial命令可以只更新单个文件?
有一个Mercurial命令可以还原文件。 hg revert
这个命令可以还原所有的改变。你也可以传递文件名给它,例如 hg revert fileName
。
hg revert fileName
会将该文件还原到当前所在的版本号。
如果你想撤销所有更改,可以运行 hg revert --all
。
这两个命令都会产生一个名为fileName.orig的备份文件,以便于在需要时恢复。如果您不想保留.orig文件,则可以添加-C
选项:
hg revert fileName -C
hg revert --all -C
hg revert /path/to/file/<file name>
,它将只更新该文件。git checkout
上有这种奇怪的行为(在Mercurial中,hg checkout
是hg update
的别名)。 - Martin Geisler
*.orig
添加到我的.hgignore
文件中,然后只是保留.orig
文件会更好。也许有一天我会需要它们 :) 如果它们困扰了你,那么你可以使用清理扩展来清理它们。 - Martin Geisler