是否可以从我的工作目录中删除所有未跟踪的文件?假设我在我的工作目录中添加了一些文件,没有通过“hg add”添加它们,现在想完全摆脱这些新文件?
我使用的是windows,虽然我使用的是PowerShell,所以在这里也可以使用组合解决方案。
是否可以从我的工作目录中删除所有未跟踪的文件?假设我在我的工作目录中添加了一些文件,没有通过“hg add”添加它们,现在想完全摆脱这些新文件?
我使用的是windows,虽然我使用的是PowerShell,所以在这里也可以使用组合解决方案。
添加水银扩展称为清洗。它由Mercurial发行。
这个扩展添加了一个“清除”命令到“hg”,删除文件不知道Mercurial。即未跟踪的文件。所以你的命令是,
hg purge
它在默认情况下没有启用,可能是为了避免意外删除您忘记添加的文件。
要安装此扩展,请将其添加到您的mercurial设置文件(。Unix上的hgrc, Windows上的mercury .ini)
[extensions]
purge =
要启用此扩展临时您可以使用
hg purge --config extensions.purge=
假设你使用的是*nix系统,你可以运行这样的程序:
rm `hg st | awk '/\?/ {print $2}'`
从mercurial存储库的根目录。
我不知道有什么标准的mercurial命令可以做到这一点,但我相信有很多命令行选项可以做到这一点。我相信有“更好”的解决方案,我有兴趣听取任何其他建议。
请谨慎使用此命令,因为它没有经过彻底测试。
这在Windows 10命令行中工作(当然要小心使用):
for /f %g in ('hg status -un') do @echo %g & @del %g
如果你没有本地更改,一个快速/hack的方法是从文件管理器(例如Windows资源管理器)中删除你想要的文件夹,然后使用“hg revert”只恢复被跟踪的文件。