## 命名

git-clean - 从工作树中删除未跟踪的文件

## 概要

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

## 描述

通过从当前目录开始递归地移除不受版本控制的文件来清除工作树。

通常，只有Git未知的文件才会被删除，但是如果`-x`指定了该选项，则也会删除被忽略的文件。例如，这可以用于删除所有构建产品。

如果`<path>...`给出任何可选参数，则只有那些路径受到影响。

## 选项

-d

除了未跟踪的文件之外，还要除去未跟踪的目录。如果未跟踪的目录由不同的Git存储库管理，则默认情况下不会删除它。如果您真的想删除这样的目录，请使用-f选项两次。

-f --force

如果Git配置变量clean.requireForce未设置为false，`git clean`将拒绝删除文件或目录，除非给定-f，-n或-i。除非给出第二个-f，否则Git将拒绝使用.git子目录或文件删除目录。

-i --interactive

以交互方式显示将要完成的操作和清理文件。有关详情，请参阅“交互模式”。

-n --dry-run

不要实际删除任何东西，只显示会做什么。

-q --quiet

Be quiet，只报告错误，而不是成功删除的文件。

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

除了在.gitignore（每个目录）和$ GIT_DIR / info / exclude中发现的内容外，还应将这些模式视为有效的忽略规则集。

-x

不要使用从.gitignore（每个目录）和$ GIT_DIR / info / exclude读取的标准忽略规则，但仍然使用与`-e`选项一起提供的忽略规则。这允许删除所有未跟踪的文件，包括构建产品。这可以用来（可能与其结合`git reset`）创建一个原始工作目录来测试一个干净的构建。

-X

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

## Interactive mode

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

命令循环显示可用的子命令列表，并提示“What now>”。通常，当提示以单个结尾时`>`，您可以只选择其中一个选项并输入return，如下所示：

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

        What now> 1

只要选择是独一无二的，你也可以说`c`或`clean`以上。

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

clean

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

按模式过滤

这显示了要删除的文件和目录，并发出“输入忽略模式>>”提示。您可以输入空格分隔的模式以从删除中排除文件和目录。例如“* .c * .h”将删除以“.c”和“.h”结尾的文件。当您对筛选结果满意时，按ENTER（空）回到主菜单。

按数字选择

这显示要删除的文件和目录并发出“选择要删除的项目>>”提示。当提示以双精度结束时`>>`，可以进行多个选择，并将其与空格或逗号连接。你也可以说范围。例如“2-5 7,9”从列表中选择2,3,4,5,7,9。如果省略范围中的第二个数字，则选择所有剩余的项目。例如“7-”从列表中选择7,8,9。你可以说`*`选择一切。另外，当您对筛选结果满意时，请按ENTER（空白）回到主菜单。

询问每一个

这将开始清理，并且您必须逐个确认以删除项目。请注意，此操作不如上述两项操作有效。

quit

这可以让你不做清洁就退出。

help

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