我不小心在我所有的git提交和推送活动中包含了我Python的虚拟环境目录venv
。
我刚刚将venv
添加到我的. gitignore
。但是我的.git文件夹仍然很大(我假设是因为之前的提交和对venv的跟踪)。
我怎样才能让git完全忘记跟踪venv
并将我的. git
文件夹再次缩小到合理的大小,因为它让Heroku推动了一场噩梦。
尝试从git存储库中删除文件:
git rm --cached venv*
Rich Stone在下面提到,如果venv
是一个文件夹,你应该使用递归开关,-r
:
git rm --cached -r venv*
试试git gc
,根据手册,这会触发自动垃圾回收机制。如果这没有帮助,请在这里留下评论,我会为您调查更多选项。
不,它没有。. gitignore
只确保被忽略的文件不会意外添加,但它不会从历史记录中删除它们,也不会从HEAD中删除它们,如果它们已经添加,甚至不会从索引中删除它们。
从git历史中永久删除大文件需要重写历史记录,这是一个有点痛苦的操作。特别是,它会中断从其他具有“旧”历史版本的存储库中的推送和拉取。但这是可以做到的;有关详细信息,请参阅例如这个问题或这个问题。