如何将工作目录状态恢复到存储库的新克隆状态(显然我可以克隆我的存储库,但这看起来有点野蛮。)
使用git我会这样做:
git clean -xdn (dry-run, to see what I'm about to destroy)
git clean -xdf (force, to actually do it)
而且我假设可能存在一种微妙的不同,但我找不到它。
答案 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 update
或hg help revert
获取有关选项的文档。