如何在Git中删除未跟踪的文件

时间:2020-03-05 15:25:42  来源:igfitidea点击:

可以跟踪或者取消跟踪Git工作目录中的文件。

跟踪的文件是已添加并提交的文件,而Git知道。
跟踪的文件可以未经修改,修改或者暂存。
工作目录中的所有其他文件均未跟踪,并且git无法识别这些文件。

有时,git工作目录中可能会堆满不必要的文件,这些文件会自动生成,合并后遗留的文件或者错误创建的文件。
在这种情况下,我们可以将这些文件添加到“ .gitignore”中或者将其删除。

如果要保持存储库的美观和整洁,更好的选择是删除不必要的文件。

本文介绍了如何在Git中删除未跟踪的文件。

删除未跟踪的文件

允许我们删除未跟踪文件的命令是'git clean'。

备份存储库始终是一个好主意,因为一旦删除存储库,文件和对其所做的更改将无法恢复。

在运行实际命令并删除未跟踪的文件和目录之前,请使用“ -n”选项将执行“空运行”,并向我们显示将删除哪些文件和目录:

git clean -d -n

输出将如下所示:

Would remove content/test/
Would remove content/blog/post/example.md

如果上面列出的某些文件很重要,则应该使用'git add << file>'开始跟踪这些文件,或者将其添加到'.gitignore'中。

一旦确定要继续删除未跟踪的文件和目录,请键入:

git clean -d -f

该命令将打印所有成功删除的文件和目录:

Removing content/test/
Removing content/blog/post/example.md

'-d'选项告诉git也删除未跟踪的目录。
如果我们不想删除空的未跟踪目录,请省略“ -d”选项。

'-f'选项代表强制。
如果未使用,并且Git配置变量'clean.requireForce'设置为true,则Git不会删除文件。

要以交互方式删除未跟踪的文件,请使用“ -i”选项:

git clean -d -i

输出将显示要删除的文件和目录,并询问我们如何处理这些文件:

Would remove the following items:
  content/test/  content/blog/post/example.md
*** Commands ***
    1: clean                2: filter by pattern    3: select by numbers
    4: ask each             5: quit                 6: help

选择其中一个选项,然后单击“ Enter”。

如果要将清除操作限制为给定目录,请将路径传递到要检查的未跟踪文件的目录,作为命令的参数。
例如,要检查“ src”目录下的文件,可以运行:

git clean -d -n src

删除忽略的文件

'git clean'命令还允许删除被忽略的文件和目录。

要删除所有忽略和未跟踪的文件,请使用'-x'选项:

git clean -d -n -x

如果只想删除忽略的文件和目录,请使用“ -X”选项:

git clean -d -n -X

上面的命令将删除“ .gitignore”中列出的所有文件和目录,并保留未跟踪的文件。