首页/开发/Git 与协作速查/git clean 清理未跟踪文件
Git 基础与命令88 条

git clean 清理未跟踪文件

删除未跟踪文件与目录:-n 先演练列出将删项,-f 执行,-d 处理目录,-x 连忽略文件一起清、-X 只清忽略文件。

Git 与协作速查开发更新于 2026-10-13

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 时命令只会提示而不会删除;若为特定目录临时需要,可在配置中调整,但共享机器上不建议改这个默认值。

易错点

  • -x 会连同 .env、本地证书等被忽略的配置文件一起删除,含敏感本地文件时务必先用 -n 检查清单
  • clean 只处理未跟踪文件,已暂存或已提交的内容不会被删除,误以为能回滚是常见误解
  • 在仓库根目录随手执行 git clean -fdx 可能清掉整份本地构建环境,重新构建的成本远超预期
  • 把 -e 写在 -n 之后忘记复查就直接加 -f,排除规则写错会误删本该保留的文件
  • clean 不会递归进入子模块内容,处理子模块需要进入对应目录单独执行

数据来源与参考

  • Git 官方文档:git-clean
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌