English ▾ 主题 ▾ 最新版本 ▾ 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,则除非给定 -f,否则git clean将拒绝删除文件或目录。 除非给出第二个 -f,否则 Git 将拒绝修改未跟踪的嵌套 git 存储库(带有 .git 子目录的目录)。

-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

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

filter by pattern

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

select by numbers

这将显示要删除的文件和目录,并发出“Select items to delete>>”提示。 当提示以双>>结尾时,您可以进行多个选择,并用空格或逗号连接。 您也可以说范围。 例如,“2-5 7,9” 从列表中选择 2,3,4,5,7,9。 如果省略范围中的第二个数字,则会选择所有剩余项目。 例如,“7-” 从列表中选择 7,8,9。 您可以说 * 选择所有内容。 另外,当您对过滤结果满意时,按 ENTER(空)返回到主菜单。

ask each

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

quit

这使您可以退出而不进行任何清理。

help

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

配置

本节中此行以下的全部内容均有选择地包含在git-config[1]文档中。 内容与那里找到的相同

clean.requireForce

一个布尔值,使 git-clean 拒绝删除文件,除非给出 -f。 默认为 true。

另请参阅

GIT

属于 git[1] 套件的一部分

scroll-to-top