Start·Fehlermeldungen

git · Git

Die Meldung

fatal: refusing to merge unrelated histories

Was es bedeutet

Die beiden Seiten, die Sie zusammenführen wollen, haben keinen gemeinsamen Vorfahren — für git sind es zwei einander fremde Historien. Typisch entsteht das, wenn Sie lokal mit git init begonnen, einige Commits gemacht, dann ein Remote hinzugefügt haben, das schon eigene Commits enthielt, und dann gepullt haben. --allow-unrelated-histories führt sie zwar zusammen, verschweißt aber zwei fremde Historien in einem einzigen Commit, was später kaum zu trennen ist; bei nur wenigen lokalen Commits ist es sauberer, das Remote frisch zu klonen und die Dateien hineinzukopieren.

Die Lösung

git pull origin main --allow-unrelated-histories
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 „fatal: refusing to merge unrelated histories“?

Die beiden Seiten, die Sie zusammenführen wollen, haben keinen gemeinsamen Vorfahren — für git sind es zwei einander fremde Historien. Typisch entsteht das, wenn Sie lokal mit git init begonnen, einige Commits gemacht, dann ein Remote hinzugefügt haben, das schon eigene Commits enthielt, und dann gepullt haben. --allow-unrelated-histories führt sie zwar zusammen, verschweißt aber zwei fremde Historien in einem einzigen Commit, was später kaum zu trennen ist; bei nur wenigen lokalen Commits ist es sauberer, das Remote frisch zu klonen und die Dateien hineinzukopieren.

Q. Wie behebe ich das?

git pull origin main --allow-unrelated-histories — 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 6 Wörter.

Verwandte Fehler