Start·Fehlermeldungen

git · Git

Die Meldung

Updates were rejected because the remote contains work that you do not have locally.

Was es bedeutet

Das ist die Erläuterung hinter einem abgelehnten Push: das Remote enthält Arbeit, die Ihr Klon nicht hat, und ein Push jetzt würde sie entfernen. Es erscheint, wenn mehrere Personen einen Branch teilen oder wenn Sie eine Datei im Webinterface bearbeitet und committet, aber nie geholt haben. Erst git pull --rebase origin main, dann push — und es läuft glatt durch. Trotz dieses Hinweises --force anzuhängen bewirkt genau das, was der Hinweis verhindern soll: die Commits der anderen Person verschwinden vom Server, und wenn nach deren Push niemand geholt hat, existieren sie nirgends mehr.

Die Lösung

git pull --rebase origin main
Ausgegeben von
git
Git
29

Fast jeder git-Fehler ist eine Verweigerung im Sinne von „das aus diesem Zustand zu tun würde etwas verlieren“; fatal: heißt, git hat ohne jede Änderung abgebrochen, und die hint:-Zeilen unter der ersten enthalten meist die eigentliche Lösung.

Eine Fehlermeldung lesen

  • Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
  • Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
  • Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
  • Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
  • Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.

Häufige Fragen

Q. Was bedeutet „Updates were rejected because the remote contains work that you do not have locally.“?

Das ist die Erläuterung hinter einem abgelehnten Push: das Remote enthält Arbeit, die Ihr Klon nicht hat, und ein Push jetzt würde sie entfernen. Es erscheint, wenn mehrere Personen einen Branch teilen oder wenn Sie eine Datei im Webinterface bearbeitet und committet, aber nie geholt haben. Erst git pull --rebase origin main, dann push — und es läuft glatt durch. Trotz dieses Hinweises --force anzuhängen bewirkt genau das, was der Hinweis verhindern soll: die Commits der anderen Person verschwinden vom Server, und wenn nach deren Push niemand geholt hat, existieren sie nirgends mehr.

Q. Wie behebe ich das?

git pull --rebase origin main — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.

Q. Welches Werkzeug gibt das aus?

git. Es gehört zu Git, und die Meldung hat 14 Wörter.

Verwandte Fehler