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

243 阅读2分钟

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

让我们来看看如何在一个被追踪的文件被添加到.gitignore后从git中移除它。

当我们在git中追踪一个文件时,它有时会被缓存并保持追踪,即使我们把它添加到我们的.gitignore 文件。这只是因为.gitignore 可以防止文件被添加到 Git 的跟踪系统中,但它不会主动删除那些已经被跟踪的文件。当你有一些你不想再被追踪的东西,但似乎又无法从你的 git 仓库中删除它时,这就会导致问题。

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

Shell

git rm --cached [filename]

同样,如果需要删除整个目录,可以使用-r 标志,该标志意味着递归,可以删除整个目录和其中的所有内容,使其不再被追踪。

Shell

git rm -r --cached [directory]

运行此命令后,你就可以添加修改你的提交,并将其推送到你的远程。

Shell

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

注意,这不会从你的本地电脑中删除文件,但会从你的git仓库中删除对文件的追踪。它也会在你下一次git pull ,从其他开发者的电脑或服务器上删除这些文件。小心使用这个命令,因为几周前我不小心用它删除了FJOLT上的所有图片。 :)

Git

经Johnny Simpson, DZone MVB许可发表于DZone。点击这里查看原文。