Git强制推送到github被拒绝的大文件被删除但不再被跟踪

Taa*_*aam 2 git github

所以我对git很新,而且我已经有点发酵了.

我对我的本地副本进行了许多新的更改,与我的github repo冲突(但是我的本地副本是正确的,我只想覆盖远程仓库).本地和远程副本分为2和3次提交.

我还意外地将一些非常大的csv文件添加到我的本地提交中,现在我无法推送到远程仓库,git push -f因为github拒绝了大文件.

现在我删除了文件,并将它们从提交中删除git rm --cached "filename.csv",git commit --amend -CHEAD并且它们不再在提交中,因为我可以告诉它从git ls-files | grep "*.csv"哪个返回空白.

但是当我git push -f在不再跟踪它们之后尝试使用时,github仍会检测到它们并拒绝我的推送,因为它们太大了,尽管它们不再在文件系统或提交中.

如何推送本地副本以覆盖远程并获得推送以实现我不再拥有大文件?

提前感谢任何和所有git建议...对于新手来说可能有点混乱.

Dan*_*iel 5

听起来你已经提交了大文件,然后做了另一个删除大文件的提交.这意味着大文件仍处于一个或多个早期提交中.当您推送到GitHub时,您将推送整个存储库,包括所有提交(包括任何具有大文件的提交).由于文件较大,GitHub实际上拒绝了其中一个较旧的提交.

您无法看到该文件的原因git ls-files是它只列出当前索引中的文件(最后一次提交,并更改您要提交的内容)和工作树(磁盘上文件的当前状态),而不是存储库历史记录中的所有文件.

要解决此问题,您可以按照如何从Git存储库中的提交历史记录中删除/删除大文件的步骤进行操作.这样你就可以使它好像你从未提交过文件一样.