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?

-2voto

RAHUL KUMAR Punkte 949

Ich füge der ersten Antwort hinzu.

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch ' HEAD

Es wird einige Merge-Konflikte von origin/master geben.

Ihr Branch und 'origin/master' haben sich auseinander entwickelt und haben jeweils 114 bzw. 109 unterschiedliche Commits. (Verwenden Sie "git pull", um den Remote-Branch in Ihren zu mergen)

Bitte führen Sie dies aus

git reset --hard origin/master

Es wird alle meine gestageten und ungestageten Änderungen verwerfen, alles auf meinem aktuellen lokalen Branch vergessen und ihn genau wie origin/master machen.

-2voto

Scientifik Punkte 1

Löschen des Repos und Neustart hat bei mir funktioniert

Ähnlich wie bei @Shuaibin Chang hat keines dieser Dinge bei mir funktioniert. Eines der großen Probleme war, dass mein Fehler beim ersten git commit auftrat, also konnte ich nicht X commits zurückgehen, weil es keine anderen Commits gab, zu denen ich zurückgehen konnte.

Ich ging zum Repository, wo ich mein defektes Repository entfernen und ein neues installieren wollte, und habe folgendes gemacht:

  • sudo rm .git - Dadurch wird das alte .git-Repository entfernt, das Probleme verursacht. Es kann sein, dass es nach dem Löschen von schreibgeschützten Dateien fragt. Wenn ja, antworte mit y für jede einzelne, es wird wahrscheinlich eine Menge sein in diesem Fall.
  • git init - Initialisiert ein neues Repository an der Stelle, an der das alte war
  • Von hier aus folgen Sie den normalen Schritten, die Sie üblicherweise zur Erstellung und zum Pushen Ihrer Git-Repositorys unternehmen.

-11voto

Bishwas Mishra Punkte 1094

Machen Sie Ihr lokales Repo mit dem Remote-Repo übereinstimmen (alle lokalen Änderungen gehen verloren):

git reset --hard origin/master

Dann erneut pushen.

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