我如何从当前工作树中删除未跟踪的本地文件 ?


当前回答

在实际删除之前先知道要删除的内容:

git clean -d -n

它将产生类似的东西:

将删除样本. txt

删除上一个命令输出中列出的所有内容 :

git clean -d -f

它将产生类似的东西:

删除样本. txt

其他回答

注意: 第一次浏览到目录并检查您想要清除的分支 。

-i交互式模式,它将告诉您要删除什么, 您可以从列表中选择一个动作 。

  1. 清洁文件 文件仅[不列出文件夹,也不清洗]:$ git clean -i

  2. 清洁文件和文件夹: $ git clean -d -i

-d包括目录。


如果您选择了c从列表中删除。文件/文件夹将被删除,因为文件/文件夹没有被跟踪,还会删除被你弄乱的文件/文件夹。 *

例如:如果您对远程的文件夹进行重组,并将修改拉到本地计算机中。其他人最初创建的文件/文件夹将放在过去的文件夹和您重组的新文件夹中。

如果需要从特定的子目录中删除未跟踪的文件,

git clean -f {dir_path}

并合并删除未跟踪的 dir/ file 和被忽略的文件 。

git clean -fxd {dir_path}

在此之后, 您将只对文件进行修改git status.

用户互动办法:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

- i 用于交互式
-f 用于武力
-d 用于目录
- 被忽略文件的x( 需要时添加)

注: 添加添加添加- n,n-- 干燥运行检查它能做什么

(d) [-f] [-n] [-q] [-e] [-x -X] [-]...

-q, --quiet           do not print names of files removed
-n, --dry-run         dry run
-f, --force           force
-i, --interactive     interactive cleaning
-d                    remove whole directories
-e, --exclude <pattern>
                      add <pattern> to ignore rules
-x                    remove ignored files, too
-X                    remove only ignored files

如果未跟踪的目录是自有的 git 仓库( 如子模块) , 您需要使用-f两次:

git clean -d -f -f