是否可以从我的工作目录中删除所有未跟踪的文件?假设我在我的工作目录中添加了一些文件,没有通过“hg add”添加它们,现在想完全摆脱这些新文件?

我使用的是windows,虽然我使用的是PowerShell,所以在这里也可以使用组合解决方案。


当前回答

添加水银扩展称为清洗。它由Mercurial发行。

这个扩展添加了一个“清除”命令到“hg”,删除文件不知道Mercurial。即未跟踪的文件。所以你的命令是,

hg purge

它在默认情况下没有启用,可能是为了避免意外删除您忘记添加的文件。

要安装此扩展,请将其添加到您的mercurial设置文件(。Unix上的hgrc, Windows上的mercury .ini)

[extensions]
purge = 

要启用此扩展临时您可以使用

hg purge --config extensions.purge= 

其他回答

不清洗的正确方法是:

hg st -un0 | xargs -0 rm

如果你不想使用purge:

rm $(hg st | grep ^? | awk '{print $2}')

添加水银扩展称为清洗。它由Mercurial发行。

这个扩展添加了一个“清除”命令到“hg”,删除文件不知道Mercurial。即未跟踪的文件。所以你的命令是,

hg purge

它在默认情况下没有启用,可能是为了避免意外删除您忘记添加的文件。

要安装此扩展,请将其添加到您的mercurial设置文件(。Unix上的hgrc, Windows上的mercury .ini)

[extensions]
purge = 

要启用此扩展临时您可以使用

hg purge --config extensions.purge= 
rm $(hg st -u)

...这里-u代表“untracked”,你也可以选择其他状态。

谢谢!这在Powershell中也适用:

hg st -un | rm