3

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

使用 git 我会这样做:

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

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

而且我假设可能有一个微妙不同的等价物,但我找不到它。

4

2 回答 2

7

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

hg clean --all --print

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

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

git reset --hard origin/master

然后你需要启用mq 扩展并运行

hg strip "outgoing()"

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

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

于 2012-04-13T15:19:44.483 回答
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获取有关选项的文档。

于 2012-04-11T12:49:54.527 回答