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"