我不小心把Python虚拟环境目录venv
包含在我的所有git提交和推送活动中。
我刚刚将venv
添加到了.gitignore
文件中。但我的.git文件夹仍然非常大(我认为是因为之前的提交和跟踪记录了venv)。
我该如何让git完全忘记跟踪venv
,并使我的.git文件夹重新变得合理,因为这让Heroku的推送变得困难。
我不小心把Python虚拟环境目录venv
包含在我的所有git提交和推送活动中。
我刚刚将venv
添加到了.gitignore
文件中。但我的.git文件夹仍然非常大(我认为是因为之前的提交和跟踪记录了venv)。
我该如何让git完全忘记跟踪venv
,并使我的.git文件夹重新变得合理,因为这让Heroku的推送变得困难。
尝试从您的Git存储库中删除文件:
git rm --cached venv*
Rich Stone提到,如果venv
是一个文件夹,你应该使用递归开关-r
:
git rm --cached -r venv*
.gitignore
中并不会从存储库中删除该文件。git filter-branch
来完全从存储库中删除文件或目录。要执行此操作,请使用以下命令:git filter-branch --index-filter 'git rm --cached --ignore-unmatch file/or/dir/with/complete/path' --prune-empty --all
file/or/dir/with/complete/path
。请记住,您需要执行git push -f
,因为您更改了历史记录。
git rm --cached -r venv*
以递归删除。 - Rich Steinmetz