在使用 Git 仓库时,常常会积累一些未被版本控制系统跟踪的文件和目录。这些可能是临时文件、构建产物,或其他未提交的本地文件。随着时间推移,这些文件会使工作目录变得杂乱,影响您维护一个干净有序的工作空间。
为了解决这个问题,Git 提供了 git clean 命令,用于移除未跟踪的文件和目录。本文将向您展示如何安全地使用 git clean、它的不同选项,以及如何通过最佳实践避免意外删除文件,同时保持 Git 仓库整洁。若想进一步学习,我 推荐参加我们的 Foundations of Git 和 Introduction to GitHub Concepts 课程,了解版本控制以及 Git 与 GitHub 的区别。
理解 git clean
git clean 是一个实用的 Git 工具,用于从工作目录中移除未跟踪的文件。 当您需要将工作目录重置为原始干净状态时(例如在切换分支之前,或在运行会生成临时文件的构建流程之后),git clean 非常有用。 不过,git clean 必须谨慎使用,因为它会永久删除未跟踪的文件和目录,不会将其移到回收站。
与会修改已跟踪文件的 git reset 或 git checkout 不同,git clean 专门处理未纳入版本控制的文件和目录。这包括:
git clean 有助于保持工作目录整洁,并与 git reset、git checkout 等管理已跟踪文件变更的命令相互补充。
我认为这份 完整 Git 速查表 是查阅常用 Git 命令的便捷参考。
git clean 的常见用法
git clean 是保持工作目录整洁的实用工具。下面是一些常见场景,git clean 可安全移除不需要的文件和目录。
移除未跟踪文件
在一个 Git 仓库中,未跟踪文件可能会逐渐累积。以下选项可帮助移除它们:
不过,使用 -fx 选项时应当谨慎,因为它也会移除被忽略的文件。执行前请务必先进行一次模拟运行(git clean -n)。
交互模式
使用 git clean -i 可进入交互模式,允许您选择性地移除未跟踪文件。需要对删除的文件或目录进行更精细控制时,此模式非常有用。
假设您在一个项目中,已保存了 Olympics 文件夹中的更改,但又新增了名为 2024_Data 和 2025_Data 的数据源。此时运行 git clean -i,您会看到一个提示,可从以下选项中进行选择,以删除未跟踪的更改。
-
clean: 移除所选文件
-
filter:指定要清理文件的匹配模式
-
select:按编号选择单个文件
-
quit:退出且不删除任何内容

git clean -i 交互模式。作者供图。
模拟运行以确保安全
使用 git clean -n 是一种很好的安全措施,它会执行一次“模拟运行”,展示将被删除的未跟踪文件和目录列表,但不会实际删除。这样您可以在执行前先审查变更。
在下面的示例中,git clean -n 会列出应删除的文件,但并不会删除它们。

git clean -n 模拟运行。作者供图。
与 git reset 组合使用
要彻底重置一个 Git 工作目录,您可以组合使用 git reset 和 git clean:
这种组合能确保工作目录完全干净,适用于切换分支、撤销试验性更改或准备重新开始的场景。
查看我们的 Git Pull Force:如何用远端覆盖本地分支 教程,学习覆盖本地更改的最佳实践。
使用 git clean 的分步指南
按照以下步骤安全清理您的 Git 仓库,移除不需要的未跟踪文件和目录。
步骤 1:检查当前状态
在清理之前,运行 git status 检查仓库当前状态,查看哪些文件未被跟踪。
git status技术支持

使用 git status 检查仓库当前状态。作者供图。
步骤 2:预览将被移除的内容
在执行任何删除命令前,使用 git clean -n 预览将被移除的内容。
git clean -n技术支持

git clean -n 预览将删除的内容。作者供图。
步骤 3:移除未跟踪文件
如果预览无误,运行 git clean -f 移除未跟踪文件。
git clean -f技术支持

使用 git clean -f 移除未跟踪更改。作者供图。
步骤 4:移除未跟踪目录
使用 git clean -fd 移除未跟踪目录。
git clean -fd技术支持

使用 git clean -fd 移除未跟踪目录。作者供图。
步骤 5:移除被忽略文件
要同时移除未跟踪与被忽略的文件,使用 git clean -fx 命令。
git clean -fx技术支持
步骤 6:使用交互模式进行选择性清理
如需更精细控制,可使用 git clean -i 进行交互式删除。此模式允许您逐个选择要删除的文件。
Git clean -i技术支持

git clean -i 交互模式用于选择性清理。作者供图。
git clean 与其他 Git 命令
git clean 常与其他修改或重置文件的 Git 命令进行比较。下表突出显示了关键差异:
| 命令 | 功能 |
|---|
git clean | 永久移除未跟踪的文件和目录。 |
git reset | 将已跟踪文件重置到先前状态,影响暂存与已提交的更改。 |
git checkout(或 git restore) | 丢弃已跟踪文件中的更改,但不删除文件本身。 |
git stash | 临时保存已跟踪与未跟踪的更改,以便稍后使用。 |
Git Clean 最佳实践
要安全且有效地使用 git clean,请遵循以下最佳实践:
-
在删除前进行模拟运行(-n):执行 git clean 前务必使用 git clean -n 做一次模拟运行。这样可以在不实际删除的情况下预览将被移除的文件。
-
留意被忽略的文件: 使用 git clean 时,对 -x 选项要格外小心,它会移除被忽略的文件。这可能包含 .gitignore 中的重要配置文件。若确需移除被忽略文件,使用 git clean -fx。
-
与 Git Reset 结合实现彻底清理: 要完全重置仓库,可将 git reset 与 git clean 结合使用,其中 git reset --hard 将已跟踪文件恢复到最后一次提交的状态,git clean -fd 则移除未跟踪的文件和目录。
-
使用交互模式(-i)更安全地删除: 不要盲目删除文件,使用交互模式(git clean -i)来审查并选择要删除的文件。
潜在风险与注意事项
如果不谨慎,使用 git clean 可能带来风险,因为它会永久删除文件且不会进行任何保存。以下是需要考虑的主要风险与注意事项:
-
文件会被永久删除:与会临时保存更改的 git stash 不同,git clean 会永久删除未跟踪的文件和目录。一旦删除,无法通过 Git 恢复。如果您可能稍后还需要这些文件,请在运行 git clean 之前考虑使用 stash 或备份。
-
谨慎使用 -x 选项:使用 git clean-fx 会移除被忽略的文件,其中可能包含 .gitignore 中的重要配置文件,或 node_modules/、venv/ 等依赖缓存。意外删除这些文件可能会破坏构建或开发环境,因此仅在必要时使用该选项。
-
先进行模拟运行:在执行 git clean -f 前,总是先用 git clean -n 进行模拟运行。此步骤可让您预览将要删除的文件,避免误删重要内容。
-
替代方案:在某些情况下,使用 git stash 可能优于 git clean。git stash -u 会暂存未跟踪文件(不包含被忽略文件),以便日后恢复;需要时可用 git stash pop 取回暂存的更改。当您需要切换分支或整理工作区、又不想永久丢失更改时,此法很有用。
结语
维护良好的代码库体现了对细节、效率以及对数字资产的负责任管理。雇主希望开发者了解最佳实践,例如在删除文件前使用 git clean -n,对 -x 删除被忽略文件保持谨慎,并善用 git stash 等更安全的替代方案。
学习 DataCamp 课程不仅能掌握技能,也能向雇主表明您对软件开发的重视。为此,建议阅读我们的博文 Top 20 Git Interview Questions and Answers for All Levels,并学习全新的 Git Fundamentals 技能路径,全面精通 Git。
在使用 Git 仓库时,常常会积累一些未被版本控制系统跟踪的文件和目录。这些可能是临时文件、构建产物,或其他未提交的本地文件。随着时间推移,这些文件会使工作目录变得杂乱,影响您维护一个干净有序的工作空间。
为了解决这个问题,Git 提供了
git clean命令,用于移除未跟踪的文件和目录。本文将向您展示如何安全地使用git clean、它的不同选项,以及如何通过最佳实践避免意外删除文件,同时保持 Git 仓库整洁。若想进一步学习,我 推荐参加我们的 Foundations of Git 和 Introduction to GitHub Concepts 课程,了解版本控制以及 Git 与 GitHub 的区别。理解 git clean
git clean是一个实用的 Git 工具,用于从工作目录中移除未跟踪的文件。 当您需要将工作目录重置为原始干净状态时(例如在切换分支之前,或在运行会生成临时文件的构建流程之后),git clean非常有用。 不过,git clean必须谨慎使用,因为它会永久删除未跟踪的文件和目录,不会将其移到回收站。与会修改已跟踪文件的
git reset或git checkout不同,git clean专门处理未纳入版本控制的文件和目录。这包括:构建生成的临时文件
日志文件或缓存数据
列在 .gitignore 中的文件(仅在明确使用
-x时)git clean有助于保持工作目录整洁,并与git reset、git checkout等管理已跟踪文件变更的命令相互补充。我认为这份 完整 Git 速查表 是查阅常用 Git 命令的便捷参考。
git clean 的常见用法
git clean是保持工作目录整洁的实用工具。下面是一些常见场景,git clean可安全移除不需要的文件和目录。移除未跟踪文件
在一个 Git 仓库中,未跟踪文件可能会逐渐累积。以下选项可帮助移除它们:
git clean -f:强制移除未跟踪文件。git clean -fd:移除未跟踪文件和未跟踪目录。git clean -fx:移除未跟踪及被忽略的文件,如.gitignore中列出的文件。不过,使用
-fx选项时应当谨慎,因为它也会移除被忽略的文件。执行前请务必先进行一次模拟运行(git clean -n)。交互模式
使用
git clean -i可进入交互模式,允许您选择性地移除未跟踪文件。需要对删除的文件或目录进行更精细控制时,此模式非常有用。假设您在一个项目中,已保存了
Olympics文件夹中的更改,但又新增了名为2024_Data和2025_Data的数据源。此时运行git clean -i,您会看到一个提示,可从以下选项中进行选择,以删除未跟踪的更改。clean: 移除所选文件filter:指定要清理文件的匹配模式select:按编号选择单个文件quit:退出且不删除任何内容git clean -i 交互模式。作者供图。
模拟运行以确保安全
使用
git clean -n是一种很好的安全措施,它会执行一次“模拟运行”,展示将被删除的未跟踪文件和目录列表,但不会实际删除。这样您可以在执行前先审查变更。在下面的示例中,
git clean -n会列出应删除的文件,但并不会删除它们。git clean -n 模拟运行。作者供图。
与 git reset 组合使用
要彻底重置一个 Git 工作目录,您可以组合使用 git reset
和 git clean:git reset --hard:将已跟踪文件重置为最后一次提交的状态,丢弃任何本地更改。git clean -fd:移除未跟踪的文件和目录,仅保留已提交文件。这种组合能确保工作目录完全干净,适用于切换分支、撤销试验性更改或准备重新开始的场景。
查看我们的 Git Pull Force:如何用远端覆盖本地分支 教程,学习覆盖本地更改的最佳实践。
使用 git clean 的分步指南
按照以下步骤安全清理您的 Git 仓库,移除不需要的未跟踪文件和目录。
步骤 1:检查当前状态
在清理之前,运行
git status检查仓库当前状态,查看哪些文件未被跟踪。使用 git status 检查仓库当前状态。作者供图。
步骤 2:预览将被移除的内容
在执行任何删除命令前,使用
git clean -n预览将被移除的内容。git clean -n 预览将删除的内容。作者供图。
步骤 3:移除未跟踪文件
如果预览无误,运行
git clean -f移除未跟踪文件。使用 git clean -f 移除未跟踪更改。作者供图。
步骤 4:移除未跟踪目录
使用
git clean -fd移除未跟踪目录。使用 git clean -fd 移除未跟踪目录。作者供图。
步骤 5:移除被忽略文件
要同时移除未跟踪与被忽略的文件,使用
git clean -fx命令。步骤 6:使用交互模式进行选择性清理
如需更精细控制,可使用
git clean -i进行交互式删除。此模式允许您逐个选择要删除的文件。git clean -i 交互模式用于选择性清理。作者供图。
git clean 与其他 Git 命令
git clean常与其他修改或重置文件的 Git 命令进行比较。下表突出显示了关键差异:git cleangit resetgit checkout(或git restore)git stashGit Clean 最佳实践
要安全且有效地使用
git clean,请遵循以下最佳实践:在删除前进行模拟运行(-n):执行
git clean前务必使用git clean -n做一次模拟运行。这样可以在不实际删除的情况下预览将被移除的文件。留意被忽略的文件: 使用
git clean时,对-x选项要格外小心,它会移除被忽略的文件。这可能包含.gitignore中的重要配置文件。若确需移除被忽略文件,使用git clean -fx。与 Git Reset 结合实现彻底清理: 要完全重置仓库,可将
git reset与git clean结合使用,其中git reset --hard将已跟踪文件恢复到最后一次提交的状态,git clean -fd则移除未跟踪的文件和目录。使用交互模式(-i)更安全地删除: 不要盲目删除文件,使用交互模式(
git clean -i)来审查并选择要删除的文件。潜在风险与注意事项
如果不谨慎,使用
git clean可能带来风险,因为它会永久删除文件且不会进行任何保存。以下是需要考虑的主要风险与注意事项:文件会被永久删除:与会临时保存更改的
git stash不同,git clean会永久删除未跟踪的文件和目录。一旦删除,无法通过 Git 恢复。如果您可能稍后还需要这些文件,请在运行git clean之前考虑使用 stash 或备份。谨慎使用 -x 选项:使用
git clean-fx会移除被忽略的文件,其中可能包含.gitignore中的重要配置文件,或node_modules/、venv/等依赖缓存。意外删除这些文件可能会破坏构建或开发环境,因此仅在必要时使用该选项。先进行模拟运行:在执行
git clean -f前,总是先用git clean -n进行模拟运行。此步骤可让您预览将要删除的文件,避免误删重要内容。替代方案:在某些情况下,使用
git stash可能优于git clean。git stash -u会暂存未跟踪文件(不包含被忽略文件),以便日后恢复;需要时可用git stash pop取回暂存的更改。当您需要切换分支或整理工作区、又不想永久丢失更改时,此法很有用。结语
维护良好的代码库体现了对细节、效率以及对数字资产的负责任管理。雇主希望开发者了解最佳实践,例如在删除文件前使用
git clean -n,对-x删除被忽略文件保持谨慎,并善用git stash等更安全的替代方案。学习 DataCamp 课程不仅能掌握技能,也能向雇主表明您对软件开发的重视。为此,建议阅读我们的博文 Top 20 Git Interview Questions and Answers for All Levels,并学习全新的 Git Fundamentals 技能路径,全面精通 Git。