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

  1. 列出所有未被跟踪的文件和目录清单
  2. 删除未跟踪的文件和目录
  3. 删除被忽略的文件和目录

在项目工作时,我们会有很多不必要的文件,这些文件是自己创建的,或者是错误创建的,我们将这些文件添加到 .gitignore 中,使它们不被 Git 跟踪。我们将这些文件添加到 .gitignore 中,使它们不被 Git 跟踪。为了使我们的版本库干净,我们需要删除这些文件。要删除 Git 中未被跟踪的文件,我们使用 git clean 命令。

列出所有未被跟踪的文件和目录清单

在删除所有未跟踪的文件和目录之前,最好先列出所有未跟踪的文件和文件夹,因为一旦文件和目录被删除,就很难恢复。

要查看当前工作仓库中所有未跟踪的文件和目录,我们可以使用 git status 命令。

git status

结果:

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	jpt/
	main.pyc

nothing added to commit but untracked files present (use "git add" to track)

这表明目录 jpt/和文件 main.pyc 是未被跟踪的。

我们还可以使用带有 -n选项的 git clean 命令来列出所有未被跟踪的文件和将要被删除的目录。

git clean -d -n

输出结果:

Would remove jpt/
Would remove main.pyc

-d 选项用于列出将要删除的目录。

如果命令中列出的文件或目录是重要的,我们想保留它们,我们需要使用 git add 命令将它们添加到版本库中,或者将它们列在 .gitignore 文件中。

删除未跟踪的文件和目录

如果我们确定要删除所有未被跟踪的文件和目录,我们可以使用下面的命令来删除所有未被跟踪的文件和目录。

git clean -d -f

輸出:

Removing jpt/
Removing main.pyc

它将删除所有未被跟踪的文件和目录。为了只删除文件,我们不应该使用 -d 选项来删除目录。-f 选项是用来强制删除未被跟踪的文件和目录。

为了验证所有未被跟踪的文件和目录是否被删除,我们可以使用 git clean -d -n 来列出所有未被跟踪的文件和目录。如果没有列出任何文件和目录,说明所有未跟踪的文件和目录都被删除了。

我们可以使用 -i 选项和 git clean 命令交互式地删除未被跟踪的文件和目录。

git clean -d -i

输出:

Would remove the following items:
  jpt/      main.pyc
*** Commands ***
    1: clean                2: filter by pattern    3: select by numbers
    4: ask each             5: quit                 6: help
What now> 

它将提示我们,并将根据我们的输入进行进一步的操作。

删除被忽略的文件和目录

要删除所有未被跟踪和忽略的文件和目录,我们在 git clean 命令中添加 -x 选项。

git clean -d -f -x

要只删除被忽略的文件和目录,我们在 git clean 命令中添加 -X 选项。

git clean -d -f -X
comments powered by Disqus