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



所以我对 git 相当陌生,而且我有点腌菜。

我对本地副本有许多与我的 github 存储库冲突的新更改(但是我的本地副本是正确的,我只想覆盖远程存储库(。本地和远程副本已分叉 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 建议...对于新手来说,这可能会有点令人困惑。

听起来您已经提交了大文件,然后进行了另一个删除大文件的提交。这意味着大文件仍在一个或多个较早的提交中。当您推送到 GitHub 时,您正在推送整个存储库,其中包含所有提交(包括任何具有大文件的提交(。GitHub 实际上拒绝了一个较旧的提交,因为文件很大。

您看不到带有 git ls-files 的文件的原因是它只列出当前索引(上次提交,以及您将要提交的更改(和工作树(磁盘上文件的当前状态(中的文件,而不是存储库历史记录中的所有文件。

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

最新更新