Git weigert sich, nicht verwandte Historien zusammenzuführen. Was sind „unabhängige Geschichten“?
Lesezeit: 4 Minuten
Byeongin Yoon
In meinem Lokal habe ich eine neue Textdatei erstellt → git add newfile.txt → commit → pull origin master → ERROR!
“Weigerung, nicht verwandte Geschichten zusammenzuführen”.
Was sind nicht zusammenhängende Geschichten?
Was sind verwandte Geschichten?
Was haben Sie getan, um Ihr lokales Repository einzurichten? Bist du gerannt git init + git remote add ...? Was ist die Fernbedienung und was versuchst du zu tun?
– max630
24. Juli 2017 um 4:46 Uhr
Eine Verzweigung zeigt auf ein Commit. Ein Nicht-Root-Commit hat einen oder mehrere Eltern-Commits, und jeder Eltern-Commit hat einen oder mehrere Eltern. Wenn zwei Zweige keinen gemeinsamen Vorfahren in ihrer Geschichte haben, sind sie nicht verwandt.
– ElpieKay
24. Juli 2017 um 5:00 Uhr
Vielen Dank für Ihre Kommentare! Ich wollte nur wissen, welche “unabhängige Geschichte” mein Problem nicht löst.
– Byeongin Yoon
24. Juli 2017 um 5:23 Uhr
Mögliches Duplikat von Git, das sich weigert, nicht verwandte Historien zusammenzuführen
– Natesh bhat
18. Oktober 2017 um 10:27 Uhr
Hier gibt es eine bessere und umfassendere Antwort: stackoverflow.com/questions/37937984/…
– Abednego
28. Juni 2020 um 22:49 Uhr
Yashar Panahi
Ich denke, Sie haben sich im Remote-Repository festgeschrieben, und wenn Sie ziehen, tritt dieser Fehler auf.
Ich schlage vor, unter stackoverflow.com/questions/39761024/… zu lesen.
– Zittern
16. November 2017 um 10:11 Uhr
Diese Lösung ist hilfreich, aber beachten Sie, dass das OP eigentlich wollte Verstehen und keine Reparatur. Daher sind die in der obigen Frage eingefädelten Kommentare tatsächlich hilfreicher. (Ich hatte das gleiche Problem; ich wusste, wie ich es beheben konnte, wusste aber nie wirklich, was „es“ war … Ich verstand nicht, was „unabhängige Geschichten“ eigentlich bedeuteten.)
– Mike Williamson
27. April 2018 um 21:57 Uhr
Der Link, auf den @jitter zeigt, gibt eine perfekte und detaillierte Antwort.
– Mike Williamson
27. April 2018 um 21:58 Uhr
Dies funktionierte, als ich ein neues GitHub-Repo mit Lizenz-Commit erstellen und mit meinem bereits alten Projekt zusammenführen musste. Ich denke, die beste Lösung ist, zuerst zu pushen und dann andere Sachen hinzuzufügen. Aber falls Sie meinen Fehler machen, weiß jemand, wie man das richtig macht?
– Gagarwa
11. Februar 2019 um 3:11 Uhr
Dies ist eine nette Antwort, aber für weitere Details können Sie diese Frage checken stackoverflow.com/questions/37937984/…
– Abednego
28. Juni 2020 um 22:50 Uhr
Ich stieß auf ein ähnliches Problem, bei dem ich einen Zweig von einer zweiten Fernbedienung einbrachte und mit einem Zweig von der ersten Fernbedienung zusammenführen wollte. Dies unterscheidet sich von den vorhandenen Antworten, da ich –allow-unrelated-historys nicht beim Pull verwende, sondern beim Zusammenführen.
Das ist genau das, was ich brauchte. Ich hatte ein Repo mit einem Entwicklungszweig (mit einem Gitignore darin) für mich erstellt. Mein lokales Repo war ein Master-Branch. Ich habe den Remote-Ursprung festgelegt und dann meinen Master-Zweig gepusht. Dann wollte ich den Master in die fast leere Entwicklung einfügen, damit sie für die weitere Entwicklung synchron sind. Das hat funktioniert.
– P.Ent
28. Juni 2021 um 19:10 Uhr
Tasnim Fabiha
Wenn irgendwie das Lokal .git Unterverzeichnis verloren geht, scheint das gesamte Projekt aus dem Nichts aufzutauchen, da alle lokalen Änderungsverläufe darin enthalten waren .git. Somit werden Ihre lokalen Änderungen unabhängig. Deshalb werden alle Änderungen aufgerufen unzusammenhängende Geschichten dann.
In dieser Situation, git merge or pull Anfrage kann nicht nachverfolgen, wo Sie Änderungen vorgenommen haben, um sie mit dem Remote-Projekt hinzuzufügen. Somit, " refusing to merge unrelated histories"– Fehler tritt auf.
Wenn Sie in dieser Situation versuchen, das Zusammenführen durch folgende Befehle zu erzwingen,
Ich habe dieses Problem beim Umbenennen eines der Repositories in GitHub Enterprise und beim Erstellen des gleichen früher benannten Repositorys wie in den folgenden Schritten.
Depot erstellen sample in der Ferne
Klonen Sie es auf lokal
Fernbedienung umbenennen in old-sample
Erstellen Sie ein neues Repository mit dem Namen sample in der Ferne
versuchen Sie, es von lokal zu pushen
Ein Fehler ist aufgetreten.
Das Seltsame ist, dass ich das lokale Repository entfernt habe, aber Git versucht, das alte zu klonen, selbst wenn ich versuche, es über die neu erstellte Repository-URL zu klonen. Die Klon-URL wird einfach automatisch auf die alte umgeleitet, auch wenn die neue in remote existiert. Ich weiß nicht, ob dies am Server oder am lokalen Git-Prozess liegt.
Aus diesem Grund tritt der Fehler auf, weil der Git-Prozess seinen lokalen Commit-Verlauf nicht mit dem Remote-Verlauf vergleichen kann.
Die unzusammenhängende Geschichten könnte in der obigen Situation sagen.
Am Ende habe ich das alte Repository in Remote entfernt und umbenannt, und es wurde gelöst.
14409600cookie-checkGit weigert sich, nicht verwandte Historien zusammenzuführen. Was sind „unabhängige Geschichten“?yes
Was haben Sie getan, um Ihr lokales Repository einzurichten? Bist du gerannt
git init
+git remote add ...
? Was ist die Fernbedienung und was versuchst du zu tun?– max630
24. Juli 2017 um 4:46 Uhr
Eine Verzweigung zeigt auf ein Commit. Ein Nicht-Root-Commit hat einen oder mehrere Eltern-Commits, und jeder Eltern-Commit hat einen oder mehrere Eltern. Wenn zwei Zweige keinen gemeinsamen Vorfahren in ihrer Geschichte haben, sind sie nicht verwandt.
– ElpieKay
24. Juli 2017 um 5:00 Uhr
Vielen Dank für Ihre Kommentare! Ich wollte nur wissen, welche “unabhängige Geschichte” mein Problem nicht löst.
– Byeongin Yoon
24. Juli 2017 um 5:23 Uhr
Mögliches Duplikat von Git, das sich weigert, nicht verwandte Historien zusammenzuführen
– Natesh bhat
18. Oktober 2017 um 10:27 Uhr
Hier gibt es eine bessere und umfassendere Antwort: stackoverflow.com/questions/37937984/…
– Abednego
28. Juni 2020 um 22:49 Uhr