Git Clean 常用用法

git clean 是一个用于从工作目录中移除未跟踪文件(untracked files)的命令。它非常有用,特别是在构建项目后清理生成的临时文件、日志或编译产物时。

⚠️ 重要警告:git clean 执行的操作是不可逆的。被删除的文件不会进入回收站,也无法通过 git reset 恢复。在执行实际删除前,务必先使用"干跑"模式预览。


核心参数说明

参数 全称 作用
-n --dry-run 显示哪些文件会被删除,但不实际执行删除。强烈建议删除之前执行。
-f --force 强制删除。Git 默认要求必须加 -f 才能执行真正的删除操作,以防止误删。
-d --directories 同时删除未跟踪的目录。默认情况下 git clean 只删除文件,不删除文件夹。
-x 删除所有未跟踪文件,包括被 .gitignore 忽略的文件。
-X 仅删除被 .gitignore 忽略的文件,保留其他未跟踪但未被忽略的文件。

常用场景与命令

场景一:预览将要删除的文件

在执行任何清理操作前,先看看会发生什么。

bash 复制代码
git clean -n

如果包含子目录,建议加上 -d

bash 复制代码
git clean -nd

场景二:删除当前目录下所有未跟踪的文件

这是最常用的清理命令,用于移除新建但未 git add 的文件。

bash 复制代码
git clean -f

场景三:删除未跟踪的文件和目录

当项目中生成了新的文件夹(如构建输出目录 dist/build/ 等且未被 git 跟踪时),需要加上 -d

bash 复制代码
git clean -fd

场景四:彻底清理(包括被 .gitignore 忽略的文件)

如果你修改了 .gitignore 规则,或者想清理掉所有编译生成的、被忽略的临时文件(如 *.o, *.pyc, node_modules/ 等),使用 -x

bash 复制代码
预览
git clean -nxd

执行
git clean -fxd

💡 注意:-x 会删除 .gitignore 中指定的文件,请谨慎使用,确保你不需要这些被忽略的配置或本地依赖。

场景五:仅清理被 .gitignore 忽略的文件

如果你想保留新创建但尚未加入版本控制的重要文件,只清理那些本该被忽略的垃圾文件,使用 -X(大写)。

bash 复制代码
预览
git clean -nXd

执行
git clean -fXd

交互式清理(推荐新手使用)

使用 -i 参数可以进入交互模式,Git 会列出文件并让你逐个选择是否删除。

bash 复制代码
git clean -i

在交互模式中,你可以输入:

  • clean:开始清理
  • filter:过滤文件列表
  • select:选择特定文件
  • ask:对每个文件询问
  • quit:退出

实践总结

  1. 永远先预览:养成习惯,先运行 git clean -nfd 确认列表无误。
  2. 区分 -x-X
    • -x(小写):删所有未跟踪的(含 ignore 的)。
    • -X(大写):只删 ignore 的。
  3. 结合 .gitignore:良好的 .gitignore 配置可以减少手动清理的需求。
  4. 替代方案:如果只是想让工作区回到上次 commit 的状态,且不想丢失未跟踪文件,可以考虑 git stash --include-untracked 先暂存,再决定如何处理。

常见组合速查表

目的 命令
查看将删除什么 git clean -n
查看将删除什么(含目录) git clean -nd
删除未跟踪文件 git clean -f
删除未跟踪文件和目录 git clean -fd
删除所有未跟踪文件(含 ignore) git clean -fxd
仅删除被 ignore 的文件 git clean -fXd
交互式清理 git clean -i
相关推荐
码农编程录5 小时前
【notes5】git/docker,jenkins/gerrit,mysql/redis/ldap/snmp
git
原创小甜甜5 小时前
将target目录添加到了git,将其移除操作
git
AugustRed6 小时前
多远程仓库 Git 完整命令手册
git
霸道流氓气质6 小时前
Git 共享分支安全撤销提交与 Gerrit Change-Id 问题处理指南
git·安全
悟空瞎说10 小时前
Git 协作工作流详解:从个人单打独斗到规模化团队协同
前端·git
染翰11 小时前
Java 实现 Git 自动克隆工具,打包成 Windows 独立 EXE(免安装JDK)
java·git·后端
雪的季节12 小时前
团队 Git 协作完整教程(企业级标准流程)
git
czhc114007566313 小时前
6.4:git
git
Rain50913 小时前
实战:搭建 AI Code Review 自动化流水线
前端·人工智能·git·ci/cd·自动化·ai编程·代码复审