我有一些文件在代码库中,同时也在.gitignore中。我想将这些文件从代码库中删除,但不希望在执行
参考资料: 如何使Git“忘记”曾经被跟踪但现在在.gitignore中的文件? 将目录添加到.gitignore后从远程代码库中删除它们 如何删除列在.gitignore中但仍在代码库中的文件?
git pull origin master
时从生产服务器中删除这些文件。我尝试了多个解决方案,但没有一个有效的,每次都会在拉取时从服务器中删除这些文件。参考资料: 如何使Git“忘记”曾经被跟踪但现在在.gitignore中的文件? 将目录添加到.gitignore后从远程代码库中删除它们 如何删除列在.gitignore中但仍在代码库中的文件?
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.ext' --prune-empty --tag-name-filter cat -- --all
命令除了执行缓存区的清理外,也会删除HEAD中的文件。我很困惑为什么git rm --cached
不影响HEAD,但是git filter-branch --index-filter 'git rm --cached...
命令却有影响。 - goofology