简体中文 ▾ 主题 ▾ 最新版本 ▾ git-clean 上次更新于 2.45.0

名称

git-clean - 从工作目录中移除未跟踪的文件

概要

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] [<pathspec>…​]

描述

通过递归地移除未被版本控制的文件来清理工作目录,从当前目录开始。

通常,只有 Git 未知的删除文件,但如果指定了 -x 选项,则还会删除被忽略的文件。例如,这对于删除所有构建产品很有用。

如果提供了任何可选的 <pathspec>... 参数,则只会影响匹配 pathspec 的路径。

选项

-d

通常,当没有指定 <pathspec> 时,git clean 不会递归到未跟踪的目录中,以避免删除过多内容。指定 -d 会使其也递归到这些目录中。如果指定了 <pathspec>,-d 将无关紧要;所有匹配指定路径的未跟踪文件(除了 --force 下提到的嵌套 git 目录)都将被删除。

-f
--force

如果 Git 配置变量 clean.requireForce 未设置为 false,git clean 将拒绝删除文件或目录,除非提供了 -f。Git 将拒绝修改未跟踪的嵌套 git 存储库(具有 .git 子目录的目录),除非提供第二个 -f。

-i
--interactive

显示将要执行的操作,并以交互方式清理文件。有关详细信息,请参阅“交互模式”。配置变量 clean.requireForce 被忽略,因为此模式通过交互式操作提供自己的安全保护。

-n
--dry-run

实际上不删除任何内容,只显示将要执行的操作。配置变量 clean.requireForce 被忽略,因为无论如何都不会删除任何内容。

-q
--quiet

保持安静,只报告错误,但不报告成功删除的文件。

-e <pattern>
--exclude=<pattern>

除了标准的忽略规则外,还使用给定的排除模式(请参阅 gitignore[5])。

-x

不使用标准的忽略规则(请参阅 gitignore[5]),但仍使用命令行 -e 选项提供的忽略规则。这允许删除所有未跟踪的文件,包括构建产品。这可以用于(可能与 git restoregit reset 结合使用)创建干净的工作目录以测试干净的构建。

-X

仅删除 Git 忽略的文件。这对于从头开始重建所有内容可能很有用,但会保留手动创建的文件。

交互模式

当命令进入交互模式时,它会显示将要清理的文件和目录,并进入其交互式命令循环。

命令循环显示可用的子命令列表,并给出一个提示“What now> ”。通常,当提示以单个 > 结尾时,您可以选择其中一个选项并按回车键,如下所示

    *** Commands ***
	1: clean                2: filter by pattern    3: select by numbers
	4: ask each             5: quit                 6: help
    What now> 1

您也可以输入 cclean,只要该选项是唯一的。

主命令循环有 6 个子命令。

clean

开始清理文件和目录,然后退出。

按模式过滤

这将显示将要删除的文件和目录,并显示“Input ignore patterns>>”提示。您可以输入用空格分隔的模式来排除要删除的文件和目录。例如,“*.c *.h”将排除以“.c”和“.h”结尾的文件。当您对过滤后的结果满意时,按 ENTER(空)返回主菜单。

按数字选择

这将显示将要删除的文件和目录,并显示“Select items to delete>>”提示。当提示以双 >> 结尾时,您可以选择多个项目,用空格或逗号分隔。您也可以指定范围。例如,“2-5 7,9”选择列表中的 2,3,4,5,7,9。如果范围中的第二个数字被省略,则选择所有剩余的项目。例如,“7-”选择列表中的 7,8,9。您也可以输入 * 选择所有项。当您对过滤后的结果满意时,按 ENTER(空)返回主菜单。

逐个询问

这将开始清理,您必须逐个确认才能删除项目。请注意,此操作不如上述两个操作高效。

quit

这允许您在不执行任何清理的情况下退出。

help

显示交互式 git-clean 的简要用法。

配置

本节中以下所有内容均从 git-config[1] 文档中选择性地包含。内容与彼处相同:

clean.requireForce

一个布尔值,用于使 git-clean 在未提供 -f 的情况下拒绝删除文件。默认为 true。

另请参阅

GIT

Git[1] 套件的一部分