在一个Django项目中,我运行了一个python manage.py compilescss
命令,它生成了一堆未跟踪的CSS文件:
我想用一个命令删除以*css
结尾的所有未跟踪文件。从Git: list only "untracked" files (also, custom commands)开始,到目前为止,我发现列出所有未跟踪文件的命令是
git ls-files --others --exclude-standard
但是,虽然似乎有一个-x
(或--exclude
)选项可以排除与某个模式匹配的文件,但是我没有可以通过的--include
选项*css
{{ 1}}。
是否有一种通用的Bash方法可以将这些结果过滤到CSS文件然后批量删除它们?
答案 0 :(得分:1)
我设法通过将结果传递给grep
(使用正则表达式参数)和xargs rm
来实现此目的:
git ls-files --others --exclude-standard | grep -E "\.css$" | xargs rm
运行此命令后,已删除未跟踪的CSS文件:
答案 1 :(得分:1)
git clean
是一个非常有用的命令来摆脱生成的文件。如果Git已经忽略了这些文件,请添加-x
标志以包含被忽略的文件。通常,CSS文件包含在项目的一个非常特定的子树中,您可以运行git clean -x path/to/Django/root/*/static
。
--dry-run
标记列出了要删除的文件,--force
实际上删除了它们。