git clean
删除工作区中未被 Git 跟踪的文件和目录
语法
git clean [<options>] [<path>...]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-n |
预览模式,显示会删除哪些文件但不实际执行 | |
常用 |
-f |
强制执行删除(必须参数,除非配置了 clean.requireForce=false) | |
常用 |
-d |
同时删除未跟踪的目录 | |
常用 |
-x |
同时删除被 .gitignore 忽略的文件 | |
常用 |
-X |
只删除被 .gitignore 忽略的文件(如构建产物) | |
常用 |
-i |
交互模式,逐个确认是否删除 | |
常用 |
示例
预览将被删除的文件(不实际删除)
git clean -n
Would remove build/
Would remove temp.log
删除所有未跟踪的文件和目录
git clean -fd
只删除 .gitignore 中忽略的文件(清理构建产物)
git clean -fX
彻底清理:删除所有未跟踪和被忽略的文件
git clean -fdx
只清理 src 目录下的未跟踪文件
git clean -fd -- src/
技巧
- 务必先用 -n 预览,确认不会误删重要文件
- -X(大写)只清理构建产物,保留手动创建的文件
- git clean -fdx 常用于 CI 环境确保干净构建
- 配合 git checkout -- . 可以完全恢复到最后一次提交的状态