git 如何完全删除提交的文件?[重复]

yxyvkwin  于 2023-04-04  发布在  Git
关注(0)|答案(2)|浏览(129)

此问题在此处已有答案

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完全忘记在某个指定的提交(在本例中是最后一次提交)中/之后生成的文件?

iklwldmw

iklwldmw1#

但是.git目录的大小仍然是1GB左右。
如果您已经使用git reset --hard <hash_value>命令成功地删除了提交,那么下一步就是运行垃圾收集器来搜索和删除无法访问/未引用的<hash_value>

git gc --prune=now

但我还是不能改变。
您可能需要在删除提交后强制推送

git push --force-with-lease
kpbwa7wx

kpbwa7wx2#

要停止跟踪文件,必须将其从索引中删除:

git rm --cached <file>

相关问题