用 git clean -n 先看看会删哪些未跟踪文件

20 次浏览3 条回复

临时跑构建或者测试后,目录里多了一堆缓存文件,想清掉之前最好先预演一下。

环境:Git 2.25+,在仓库根目录执行:

git clean -n

它只会列出可能被删除的未跟踪文件,不会真的删。确认没问题后,再按需要执行:

git clean -f

如果还想包含未跟踪目录,可以先看:

git clean -nd

这个命令对已跟踪文件没影响,但对未跟踪文件挺危险的,尤其是本地临时脚本、下载产物之类,别跳过 -n 直接清。

这个我一般还会先跑一下 git status --short,把未跟踪文件和已改文件分开看清楚。

如果仓库里经常有本地临时文件,其实也可以考虑放到 .git/info/exclude,只在自己机器忽略,不影响团队的 .gitignore。这样后面用 git clean -nd 时也少一点误删压力。

补一句,git clean 默认不会清 .gitignore 里忽略的东西。

真要连构建缓存、dist 这种 ignored 文件一起看,先用:

git clean -ndX

这里的 -X 只针对被忽略的文件;-x 范围更大,连忽略规则都不看,风险明显高一档。这个差别挺容易手滑。

还有个比较稳的模式是交互式:

git clean -i

它会先列出候选文件,再让你选删哪些。目录多、又不太确定缓存文件名字的时候,比直接 -f 心理压力小一点。