Mercurial:如何恢复清除文件的更改,除了那些被忽略的文件(由'.hgignore'覆盖)?

Mercurial: how to revert changes purging files except those ignored (covered by '.hgignore')?

我在 Mercurial 版本控制下对我的代码进行了一些探索性更改,所以之后我想放弃所有更改并返回到远程仓库中的最后一个版本。

hg pull
hg update -r default -C
hg --config "extensions.purge=" purge --all

我没有意识到这会删除所有未跟踪的文件,包括那些被忽略的文件。特别是像 .settings 这样的 eclipse 目录。显然我不想删除那些。

我知道我可以将模式与清除命令一起使用,而且大多数时候我只想在源代码目录下进行更改时使用它,但如果我不仅在 src 下进行了更改,而且 config,在项目目录级别添加了一个文件等等,有没有什么办法可以让 purge 自动从 .hgignore 文件中提取文件和目录,这样我就不必考虑了我有未跟踪文件的所有目录和文件?

好吧...您明确使用了一个表示 "delete everything, even if ignored" 的标志。来自 hg help purge:

--all                 purge ignored files too

因此,如果您跳过要清除的“--all”参数,它应该可以工作。