此问题在此处已有答案:
How to remove/delete a large file from commit history in the Git repository?(22个答案)
5天前关闭。
社区在5天前审查了是否重新讨论此问题,并将其关闭:
原始关闭原因未解决
我有一个git repo,大概有10-20次提交。我添加了一些1gb的文件并提交了更改。我忘记使用git lfs跟踪这些1gb的文件。
现在,当我试图把它推到github上时,它失败了,因为它太大了。现在我想让git完全忘记这个变化。所以我做了一个repo的副本,并撤销了这些变化。
我做了git reset --hard hash_value
,但仍然是大小的.git
目录是1gb的东西。
这表明它知道添加的更改/文件,但我仍然无法推送更改。
有没有什么方法可以让git完全忘记在某个指定的提交(在本例中是最后一次提交)中/之后生成的文件?
2条答案
按热度按时间iklwldmw1#
但是.git目录的大小仍然是1GB左右。
如果您已经使用
git reset --hard <hash_value>
命令成功地删除了提交,那么下一步就是运行垃圾收集器来搜索和删除无法访问/未引用的<hash_value>
。但我还是不能改变。
您可能需要在删除提交后强制推送
kpbwa7wx2#
要停止跟踪文件,必须将其从索引中删除: