如何使用mercurial进行原始结账?

时间:2012-04-11 11:05:50

标签: git mercurial

如何将工作目录状态恢复到存储库的新克隆状态(显然我可以克隆我的存储库,但这看起来有点野蛮。)

使用git我会这样做:

git clean -xdn (dry-run, to see what I'm about to destroy)

git clean -xdf (force, to actually do it)

而且我假设可能存在一种微妙的不同,但我找不到它。

2 个答案:

答案 0 :(得分:7)

您的git clean命令从工作树中删除未跟踪的文件,包括被忽略的文件。等效的Mercurial命令由标准purge extension提供:

hg clean --all --print

删除--print以实际删除文件,删除--all以仅删除未跟踪的文件并将忽略的文件留在后面。

如果您还想丢弃尚未推送的本地变更集,即相当于

git reset --hard origin/master

然后您需要启用mq extension并运行

hg strip "outgoing()"

您的本地克隆现在看起来就像您第一次克隆它时一样。

(是的,我们的工具箱中也有清晰的工具,但在您决定使用它们之前它们会被隐藏起来。)

答案 1 :(得分:2)

update-C--clean一起使用以更新修订版并弃掉任何本地未提交的更改。

hg status   (to see what you're about to destroy)
hg update <revision> -C

如果您不想修改父版本,也可以使用revert

hg revert -anC  (dry run)
hg revert -aC  (all files, no backups)

使用hg help updatehg help revert获取有关选项的文档。