git clean 是什么
git clean 删除工作区里未被跟踪的文件与目录,也就是那些 git 不认、但实实在在占着磁盘的构建产物、临时文件和误拷进来的东西。它只处理未跟踪内容:已暂存或已提交的文件不会被动到。默认开启 requiresForce,必须显式加 -f 才会真的删除;先用 -n 演练是这套命令最基本的安全习惯。所有平台通用。
基本信息
| 演练 | -n / --dry-run 只列出将删除的项 |
|---|---|
| 执行 | -f / --force 真正删除 |
| 目录 | -d 连未跟踪目录一起处理 |
| 忽略文件 | -x 连忽略文件也清 / -X 只清忽略文件 |
| 排除 | -e <模式> 保留匹配项 |
| 平台 | 任意 Git 客户端 |
典型使用场景
- 清理构建产物与缓存目录,回到干净工作区再复现问题
- 切换分支前清掉遗留的临时文件,避免污染其他分支
- 发布或打包前确认目录里没有多余的本地文件
- 用 -X 只清理被忽略的产物,保留手写的本地配置
- CI 上做一次强制清理,保证每次构建从零开始
- 排查「文件为什么没被跟踪」时先看清有哪些未跟踪项
常用示例
常用示例
git clean -n # 演练:列出将被删除的文件
git clean -f # 删除未跟踪文件
git clean -fd # 连未跟踪目录一起删
git clean -ndX # 演练:只列将清理的忽略文件
git clean -fdx # 连忽略文件一并清(慎用)
git clean -fd -e keep.txt # 保留指定文件名关键参数含义
| 参数 | 含义 |
|---|---|
| -n | 演练,只列不删 |
| -f | 执行删除,默认必需 |
| -d | 处理未跟踪目录 |
| -x / -X | 连忽略文件清 / 只清忽略文件 |
| -e | 排除模式,保留匹配项 |
clean 删除的是磁盘文件,不经回收站也不进版本库,删掉就没了;任何一次执行前都应先用 -n 核对列表,再决定是否加 -f。
默认 clean.requireForce 为 true,因此忘了加 -f 时命令只会提示而不会删除;若为特定目录临时需要,可在配置中调整,但共享机器上不建议改这个默认值。