Start·Fehlermeldungen

git · Git

Die Meldung

! [rejected] main -> main (fetch first)

Was es bedeutet

Der Remote-Branch enthält Commits, die Ihr Klon noch nie gesehen hat, sodass ein Push jetzt kein Fast-Forward wäre. Das passiert, wenn eine Kollegin zuerst gepusht hat oder Ihr letzter Fetch lange zurückliegt. git pull --rebase origin main holt diese Commits und setzt Ihre darauf neu auf, danach geht der Push durch. Greifen Sie hier nie zu --force: die Commits, die Sie überschreiben würden, gehören anderen und liegen überhaupt nicht in Ihrem Repository — nichts Lokales kann sie zurückholen.

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 „! [rejected] main -> main (fetch first)“?

Der Remote-Branch enthält Commits, die Ihr Klon noch nie gesehen hat, sodass ein Push jetzt kein Fast-Forward wäre. Das passiert, wenn eine Kollegin zuerst gepusht hat oder Ihr letzter Fetch lange zurückliegt. git pull --rebase origin main holt diese Commits und setzt Ihre darauf neu auf, danach geht der Push durch. Greifen Sie hier nie zu --force: die Commits, die Sie überschreiben würden, gehören anderen und liegen überhaupt nicht in Ihrem Repository — nichts Lokales kann sie zurückholen.

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 7 Wörter.

Verwandte Fehler