我不小心将我的 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*
试试看git gc
,根据手册,这会触发自动垃圾收集。如果这没有帮助,请在此处发表评论,我会为您调查更多选项。
请参阅此线程:如何使 Git “忘记”已跟踪但现在位于 .gitignore 中的文件?
从当前提交中删除文件很容易,但是从历史记录中完全删除它们以减小文件大小是一团糟,请参阅如何从 Git 存储库中的提交历史记录中删除/删除大文件?或https://help.github.com/articles/remove-sensitive-data
将您的最新代码导出到新的 git 存储库并重新开始并保留旧代码存档可能会更快。
放入文件.gitignore
不会从存储库中删除文件。
您需要使用git filter-brach
从存储库中完全删除文件或目录。为此,请使用以下命令:
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
从所有提交中删除。请记住,您将需要执行 a git push -f
,因为您更改了历史记录。