跳到主要内容

Git 清理未跟踪文件指南

什么时候用

当仓库里出现了很多未跟踪文件或目录,比如构建产物、临时文件、下载数据、测试输出,而你确认不需要保留它们时,可以使用 git clean

这一页处理的是:

  • 未跟踪文件
  • 未跟踪目录
  • 可选地处理已忽略文件

它不会修改已经被 Git 跟踪的文件。

先判断当前状态

git status --short
git clean -nd
git clean -ndX
  • git clean -nd 只预览,不删除,应该先跑。
  • git clean -ndX 只预览“已忽略文件”会删掉哪些内容。

推荐命令

场景推荐命令结果
预览将被删除的未跟踪文件git clean -nd安全预览,不执行删除
删除未跟踪文件和目录git clean -fd清理普通未跟踪内容
连已忽略文件也一起删除git clean -xfd最彻底,也最危险
交互式选择删除git clean -id逐项确认,更稳妥

常见场景

先预览,再删除未跟踪内容

git clean -nd
git clean -fd

只想清理已忽略的构建产物

git clean -fdX

-X 表示“只删已忽略文件”,适合清理 dist/build/.cache/ 这类内容。

想把仓库恢复到非常干净的状态

git restore .
git clean -fd

如果还有已暂存改动,先执行:

git restore --staged .

风险与边界

  • git clean 删除的是磁盘上的真实文件,不会进回收站。
  • git clean -xfd 会把被忽略的文件也删掉,常见如 node_modules/.env、构建缓存目录。
  • 默认配置下,git clean 需要 -f 才会真正执行,这是 Git 故意加的保护。
  • 它不会处理已跟踪文件的修改;这类情况请看 丢弃工作区已跟踪改动

相关命令

git status --short --ignored
git clean -nd
git clean -fdX
git stash push -u -m "backup before clean"