git 清理未跟踪文件

在 Git 中,"清理未跟踪文件"指的是删除工作区里那些 没有被 Git 跟踪(untracked) 的文件和文件夹(比如编译生成的文件、node_modules、log 文件、.env 等)。

常用命令如下:

1. 最常用的彻底清理(推荐先预览)

bash 复制代码
# 先预览一下会删除哪些文件(强烈建议先执行这个!)
git clean -n

# 或者更详细预览(显示目录也一起删)
git clean -nd

# 确认无误后真正删除
git clean -f

# 删除未跟踪的文件 + 未跟踪的目录(最常用)
git clean -fd

# 连 .gitignore 里忽略的文件也一起删(极度危险,常用于彻底清理)
git clean -fdx

命令参数详解

参数 含义 常用组合
-n 预览(dry-run),只显示要删什么,不真删 git clean -nd
-f 强制执行(必须加,否则 Git 拒绝运行) 必须加
-d 删除未跟踪的目录(不加只删文件) 几乎总是需要
-x 连被 .gitignore 忽略的文件也删除 慎用!
-X 只删除被 .gitignore 忽略的文件 很少用

常见场景推荐命令

场景 推荐命令 说明
刚克隆的项目,想删掉所有垃圾文件 git clean -fdx 最干净,但会删 .gitignore 里的东西(如 node_modules)
只想删明显垃圾,不动忽略的文件 git clean -fd 安全很多
想先看看会删什么 git clean -nd-nfd 预览
交互式一个一个确认是否删除 git clean -id-ifd 适合新手

一键彻底重置项目到最干净状态(相当于刚 git clone 下来)

bash 复制代码
git reset --hard          # 丢弃所有本地修改
git clean -fdx            # 删除所有未跟踪和忽略的文件

注意事项(非常重要!)

  • git clean 删除的文件 无法恢复(除非你有备份或用数据恢复工具)。
  • 永远先用 git clean -n 预览一下!
  • 重要文件(如 .env、配置文件)如果没加进 Git,千万别乱用 -x

举个例子(前端项目最常用):

bash 复制代码
git clean -nd      # 先看看
git clean -fd      # 删除未跟踪的文件和目录(保留 node_modules 如果在 .gitignore)
# 或
git clean -fdx     # 连 node_modules 也一起删,项目变得超级干净
相关推荐
console.log('npc')2 小时前
团队协作提交自己的功能
git
独隅2 小时前
开源项目 Git 贡献全流程的完整拆解:从 Fork 到 PR
git·开源
___波子 Pro Max.4 小时前
Git Rebase: HEAD~ 的简洁写法
git
bxri4 小时前
团队协作中的 Git 工作流(企业级实战)
git·gitee·github
原来是猿4 小时前
Git【标签操作】
git
原来是猿4 小时前
Git【远程操作】
git
MX_93595 小时前
git实现重命名——实现远程和本地重命名
git
ljh5746491195 小时前
git cherry-pick 命令
git
尽兴-5 小时前
Git 分支管理核心命令科普指南
数据库·git·分支管理·代码仓库
小陈工5 小时前
Python Web开发入门(一):虚拟环境与依赖管理,从零搭建纯净开发环境
开发语言·前端·数据库·git·python·docker·开源