如何将工作目录状态恢复到从存储库的新克隆中恢复的状态(显然我可以克隆我的存储库,但这似乎有点野蛮。)
使用 git 我会这样做:
git clean -xdn (dry-run, to see what I'm about to destroy)
git clean -xdf (force, to actually do it)
而且我假设可能有一个微妙不同的等价物,但我找不到它。
您的git clean
命令从工作树中删除未跟踪的文件,包括被忽略的文件。标准清除扩展提供了等效的 Mercurial 命令:
hg clean --all --print
删除--print
以实际删除文件,删除--all
以仅删除未跟踪的文件并留下忽略的文件。
如果您还想丢弃尚未推送的本地变更集,即相当于
git reset --hard origin/master
然后你需要启用mq 扩展并运行
hg strip "outgoing()"
您的本地克隆现在看起来就像您第一次克隆它时一样。
(是的,我们的工具箱中也有锋利的工具,但在您决定使用它们之前,它们会被隐藏起来。)
使用或更新到修订并丢弃任何本地未提交的更改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
获取有关选项的文档。