1. 引言

大家都知道,.gitignore 文件可以防止未来的未跟踪文件被添加到 Git 的索引中。换句话说,当前被跟踪的文件仍然会被 Git 跟踪。

在这个教程中,我们将探讨在将文件添加到 .gitignore 之后,如何从 Git 索引中移除已跟踪的文件的不同方法。

2. 移除单个文件

为了移除单个文件,首先需要将文件名添加到 .gitignore 中,然后运行 git rm 命令并提交更改:

git rm --cached <filename>
git commit -m "<Message>"

第一个命令从索引中移除文件并暂存更改,而第二个命令将更改提交到分支。

3. 移除一个文件夹

通过先将文件夹名称添加到 .gitignore 中,然后运行 git 命令,可以移除整个文件夹:

git rm --cached -r <folder>
git commit -m "<Message>"

请注意,在命令中添加了 -\r,否则命令会失败,显示如下:

fatal: not removing 'folder' recursively without -r.

4. 移除所有忽略的文件

这里我们移除当前 .gitignore 中被忽略的所有文件:

git rm -r --cached .
git add .
git commit -m "Removes all .gitignore files and folders"

第一个命令从索引中移除所有文件。第二个命令重新添加所有文件,但不包括 .gitignore 中的那些,最后的命令提交更改。经过这三个命令后,.gitignore 中的所有文件将从索引中移除。

5. 总结

在这篇文章中,我们探讨了三种从 Git 索引中移除已跟踪文件的方法。

以上操作不会从我们的机器上物理删除文件,但在其他开发者拉取更改后,这些文件将从他们的机器上移除。