如何让 Git 在in.gitignore 中忘记跟踪的文件

How to make Git forget a tracked file now in .gitignore

当我们在 git 中跟踪一个文件时,它有时会被缓存并保持跟踪,即使我们将它添加到我们的.gitignore文件中也是如此。这仅仅是因为.gitignore阻止文件被添加到 Git 的跟踪系统,但它不会主动删除那些已经被跟踪的文件。当您有一些不想再被跟踪但似乎无法从您的 git 存储库中删除的东西时,这可能会导致问题。

幸运的是,有一种简单的方法可以解决这个问题。git有一个内置rm功能,可以让我们删除缓存或跟踪的更改。要运行它,您可以使用以下命令删除特定文件,其中[filename]可以删除您希望停止跟踪的文件:

git rm --cached [filename]

同样,如果需要删除整个目录,请使用表示recursive-r的标志,以从跟踪中删除整个目录及其中的所有内容:

git rm -r --cached [directory]

运行此命令后,您可以添加修改提交并将其推送到远程:

git add .
git commit -m "Removed tracked files which shouldn't be tracked"
git push

注意这不会从您的本地计算机中删除文件,但会从您的 git 存储库中删除文件跟踪。它还将在您的下一个git pull. 小心这个命令,因为几周前我不小心删除了code8cn上的所有图像。:)

结论#

在这个简短的指南中,我介绍了如何在 gitignore 中删除跟踪的文件。如果您对其他有用的内容感兴趣,请查看以下链接: