如何让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。点击这里查看原文。