如何从Mercurial的工作目录中删除所有未跟踪的文件?
是否有可能从我的工作目录中删除所有未跟踪的文件? 比方说,我添加了一堆文件到我的工作目录,没有通过'hg add'添加它们,现在想摆脱这些新的文件完全?
我在Windows上,虽然我使用PowerShell,所以在这里也可以使用组合的解决scheme。
添加名为purge的Mercurial Extension。 它由Mercurial分发。
这个扩展名为“hg”添加了一个“清除”命令,用于删除Mercurial未知的文件。 即未跟踪的文件。 所以你的命令是,
hg purge
它没有默认启用,也许是为了避免意外删除您忘记添加的文件。
要安装这个扩展,把它添加到你的mercurial设置文件(Unix上的.hgrc,Windows上的Mercurial.ini)
[extensions] purge =
没有清除的正确方法是:
hg st -un0 | xargs -0 rm
谢谢! 这也适用于我在Powershell中:
hg st -un | rm
尝试以下方法
hg st -un | xargs rm
这应该做的伎俩:
hg status | grep '^\?' | sed 's/^\? //' | xargs rm -rf
rm $(hg st -u)
…其中-u代表“未跟踪”,您也可以select另一个状态。
如果你不想使用清除:
rm $(hg st | grep ^? | awk '{print $2}')
假设你正在使用一个* nix系统,你可以运行如下的东西:
rm `hg st | awk '/\?/ {print $2}'`
从mercurial仓库的根源。
我不知道一个标准的mercurial命令来实现,但我相信有更多的命令行选项来做到这一点。 我确信有“更好的”解决scheme,并有兴趣听取任何其他build议。
请谨慎使用这个命令,因为它没有经过彻底的testing。
您可以使用
hg purge --all
删除所有被忽略和未跟踪的文件
(首先你需要按照一些答案中的解释安装清除扩展)