📌  相关文章
📜  如何从当前 Git 工作树中删除本地未跟踪的文件?

📅  最后修改于: 2022-05-13 01:56:15.729000             🧑  作者: Mango

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

Git 是最常见的版本控制系统,它将随着时间的推移对项目所做的更改存储在称为存储库的特定数据库中。我们可以跟踪对项目所做的更改,并在出现任何问题时恢复到早期阶段。在本教程中,让我们看看如何从当前的 git 工作树中删除未跟踪的文件。

设置基本项目的步骤

第 1 步:创建一个名为 git 的文件夹

mkdir git

第二步:切换到git文件夹,创建一个名为files的文件夹

cd git
mkdir files

第三步:在git文件夹下创建三个文件,分别命名为tracked.txt、untracked.txt、.gitignore

touch tracked.txt untracked.txt .gitignore

第 4 步:在文件夹名称 file1.txt 和 file2.txt 中创建两个文件

cd files
touch file1.txt file2.txt

第 5 步:创建一个 .env 文件

touch .env

第 6 步:使用以下命令初始化一个空的 git 存储库

git init

第 7 步:将 .env 添加到 .gitignore 文件中

第 8 步:使用以下命令将 tracked.txt 和 .gitignore 文件添加到暂存区

git add tracked.txt .gitignore

让我们一一浏览每个交互式命令:

  1. clean:删除未跟踪的文件和目录并退出。
  2. 按模式过滤:列出将要删除的所有文件和目录,并要求用户以模式的形式输入提示,以排除文件和目录的删除。
  3. 按数字选择:列出将要删除的所有文件和目录,并要求用户以数字形式输入提示,指示要排除的文件号。该数字可以用逗号分隔或用空格分隔。示例:5,8,9 或 5-9 或 5 8 9。
  4. 询问每个:允许用户确认要删除的每个文件。不如上述方法有效。
  5. quit:退出交互模式而不进行清理。

项目结构

项目结构将类似于下图。

项目结构

现在基本的项目结构已经建立,让我们了解如何删除未跟踪的文件。未跟踪的文件是 git 存储库的最新快照中不存在的那些文件。我们可以使用以下命令从当前 git 工作树中删除未跟踪的文件

git clean

通过运行不带任何标志的 git clean 命令不能删除未跟踪的文件。通过运行不带任何标志的 git clean 命令,会生成一个致命错误并明确要求我们提及一个标志

没有标志的 git clean

列出要删除的文件

要查看所有将被删除的未跟踪文件,我们可以使用带有-n标志的 git clean 命令。这列出了将使用 git clean 命令删除的所有文件。

git clean -n

通过在我们的存储库中运行命令,我们得到:

带有 -n 标志的 git clean

列出要删除的文件和目录

要查看将被删除的所有未跟踪文件和未跟踪目录,我们可以使用带有-n-d标志的 git clean 命令。这列出了将使用 git clean 命令删除的所有文件和目录。

git clean -n -d

通过在我们的存储库中运行命令,我们得到:

带有 -n 和 -d 标志的 git clean

删除未暂存的文件

要删除未暂存的文件,我们必须使用带有 -f 标志的 git clean 命令。

git clean -f

通过在我们的存储库中运行命令,我们得到:

带有 -f 标志的 git clean

删除未暂存的文件和未暂存的目录

要删除未暂存的文件和未暂存的目录,我们必须使用带有 -f 和 -d 标志的 git clean 命令。

git clean -f -d

通过在我们的存储库中运行命令,我们得到:

带有 -f 和 -d 标志的 git clean

删除忽略的文件

要删除未跟踪的文件和 git 忽略的文件,我们必须使用带有 -f 标志和 -x 标志的 git clean 命令

git clean -f -x

通过在我们的存储库中运行命令,我们得到:

带有 -f 和 -x 标志的 git clean

删除所有未跟踪的文件、目录和忽略的文件

要删除所有未跟踪的文件、未跟踪的目录和忽略的文件,我们必须使用带有 -fdx 标志的 git clean 命令

git clean -fdx

通过在我们的存储库中运行命令,我们得到:

进入交互模式

要进入交互式 git clean 模式,我们需要使用带有 -i 标志的 git 命令标志

git clean -i

通过在我们的存储库中运行命令,我们得到:

git clean 交互模式