485 Stimmen

Kann nicht auf GitHub pushen, weil eine große Datei vorhanden ist, die ich bereits gelöscht habe

Aktuell habe ich

  1. Leeres GitHub-Repository
  2. SSH-Server-Repository (Hauptrepository)
  3. Lokales Repo

Das SSH-Server-Repository war das aktuellste Repository (Produktionsseite), also habe ich von dort aus ein Git clone auf das lokale Repository durchgeführt. Anschließend habe ich versucht, ein git push zu GitHub zu machen.

Alles lief gut, aber dann kam eine Meldung, dass die Datei filename.gz für GitHub zu groß sei. Da ich diese Datei nicht brauchte, habe ich mehrere Git-Befehle ausgeführt, um sie aus dem Git-Cache zu entfernen, und dann zurück auf den SSH-Server gepusht.

Ich sehe die große Datei lokal nicht, aber sie ist immer noch auf dem SSH-Server, obwohl git diff nichts zurückgibt und git push "Alles ist auf dem neuesten Stand" zurückgibt - und obwohl die Datei im lokalen Repository nicht sichtbar ist. Beim Versuch, zu GitHub zu pushen, erhalte ich immer noch einen Fehler.

remote: Fehler: Die Datei fpss.tar.gz ist 135,17 MB groß; das übersteigt das Dateigrößenlimit von GitHub von 100 MB

Ich habe die Schritte unter "Problembehebung" auf der GitHub-Hilfeseite befolgt, sollte das nicht ausreichen?

Warum ist die Datei immer noch "in der Luft", wenn sie weder lokal ist noch in git status/diff/push aufgelistet ist?

0voto

Daniel Viglione Punkte 6606

Also, ich habe eine bestimmte Situation erlebt: Ich habe ein Repository von Gitlab geklont, das eine Datei enthielt, die größer als 100 MB war, aber zu einem bestimmten Zeitpunkt in der Git-Geschichte entfernt wurde. Später, als ich ein neues privates Github-Repo hinzugefügt habe und versucht habe, zum neuen Repo zu pushen, habe ich den berüchtigten Fehler 'Datei zu groß' erhalten. Zu diesem Zeitpunkt hatte ich keinen Zugriff mehr auf das originale Gitlab-Repo. Trotzdem konnte ich weiterhin zum neuen privaten Github-Repo pushen, indem ich bfg-repo-cleaner auf einem LOCALEN Repository auf meinem Rechner verwendet habe:

$ cd ~
$ curl https://repo1.maven.org/maven2/com/madgag/bfg/1.13.0/bfg-1.13.0.jar > bfg.jar
$ cd my-project
$ git gc
$ cd ../
$ java -jar bfg.jar --strip-blobs-bigger-than 100M my-project
$ cd my-project
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive
$ git remote -v # bestätige, dass origin das gewünschte Remote ist, zu dem du pushen möchtest
$ git push origin master

0voto

Überprüfen Sie Ihre letzte Commit-Kennung auf GitHub und dann verwenden Sie dies

git reset --soft

Ich denke, es funktioniert. Danke

0voto

Njoroge Mathu Punkte 45

Dies hat für mich funktioniert. Dokumentation von Github Git-Commits zusammenführen Git zurücksetzen origin / master

Git-Checkout-Master && Git ziehen;
Git-Zusammenführung feature_branch;
Git hinzufügen . --all;
Git commit -m "Ihre Commit-Nachricht"

Dokumentation finden Sie hier

-1voto

Nathan Wick Punkte 71

Ich hatte dasselbe Problem.

Um dies zu beheben, habe ich den Commit rückgängig gemacht. Anschließend habe ich jede Datei einzeln erneut committed.

-1voto

Paul Punkte 1015

Angenommen, Sie haben bereits Ihre früheren Commits gepusht, löschen Sie einfach Ihren .git-Ordner, initialisieren Sie ein neues Repository, fügen Sie den Ursprung hinzu, fügen Sie Ihre Dateien hinzu (ohne die gelöschte Datei), holen Sie sie ab, wechseln Sie auf einen neuen Branch und pushen Sie auf einen neuen Branch.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X