Git weigert sich, nicht verwandte Historien zusammenzuführen. Was sind „unverbundene Geschichten“?

Lesezeit: 4 Minuten

Git weigert sich nicht verwandte Historien zusammenzufuhren Was sind „unverbundene
Byeongin Yoon

In meinem Lokal habe ich eine neue Textdatei erstellt -> git newfile.txt hinzufügen -> commit -> origin master ziehen -> ERROR!

“Weigerung, nicht verwandte Geschichten zusammenzuführen”.

Was sind nicht zusammenhängende Geschichten? , was ist 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


Ich denke, Sie haben sich im Remote-Repository festgeschrieben, und wenn Sie diesen Fehler ziehen, tritt dieser Fehler auf.

Verwenden Sie diesen Befehl

git pull origin master --allow-unrelated-histories
git merge origin origin/master

  • 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 Verständnis 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

Git weigert sich nicht verwandte Historien zusammenzufuhren Was sind „unverbundene
Tasnim Fabiha

Wenn irgendwie das Lokal .git Unterverzeichnis verloren geht, scheint das ganze Projekt aus dem Nichts aufgetaucht zu sein, da alle lokalen Änderungsverläufe darin enthalten waren .git. Somit werden Ihre lokalen Änderungen unabhängig. Deshalb werden alle Änderungen aufgerufen unrelated histories 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,

git pull origin master --allow-unrelated-histories

git merge origin origin/master

Es wird viele Konflikte verursachen, da es den Verlauf Ihrer lokalen Änderungen nicht finden kann.

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.

git checkout master
git merge --allow-unrelated-histories myfunnybrancy

  • 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

git pull origin master –allow-unrelated-histories

Git weigert sich nicht verwandte Historien zusammenzufuhren Was sind „unverbundene
Youngjae

Ich habe dieses Problem erhalten, als ich eines der Repositorys in GitHub Enterprise umbenannte und dann dasselbe zuvor benannte Repo wie in den folgenden Schritten erstellte.

  1. Repository erstellen sample in der Ferne
  2. Klonen Sie es auf lokal
  3. Fernbedienung umbenennen in old-sample
  4. Erstellen Sie ein neues Repo mit dem Namen sample in der Ferne
  5. versuchen Sie, es von lokal zu pushen
  6. Ein Fehler ist aufgetreten.

Das Seltsame ist, dass ich das lokale Repo entfernt habe, aber Git versucht, das alte zu klonen, selbst wenn ich versuche, es mit einer neu erstellten Repo-URL zu klonen. Die Klon-URL wird einfach automatisch auf die alte umgeleitet, auch wenn die neue im Remote vorhanden ist. Ich weiß nicht, dass diese Ursache vom Server oder lokalen Git-Prozess stammt.

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 obiger Situation sagen.

Am Ende habe ich das umbenannte alte Repo in der Ferne entfernt und es gelöst.

868210cookie-checkGit weigert sich, nicht verwandte Historien zusammenzuführen. Was sind „unverbundene Geschichten“?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy