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

Lesezeit: 4 Minuten

Benutzeravatar von Byeongin Yoon
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


Benutzeravatar von Yashar Panahi
Yashar Panahi

Ich denke, Sie haben sich im Remote-Repository festgeschrieben, und wenn Sie 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 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.

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

Benutzeravatar von Tasnim Fabiha
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,

git pull origin master --allow-unrelated-histories

git merge origin origin/master

Es wird viele Konflikte verursachen, da es nicht in der Lage ist, den Verlauf Ihrer lokalen Änderungen zu finden.

Benutzeravatar von Sanjay Adhikari
Sanjay Adhikari

git pull origin master --allow-unrelated-histories

Benutzeravatar von Youngjae
Youngjae

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.

  1. Depot erstellen sample in der Ferne
  2. Klonen Sie es auf lokal
  3. Fernbedienung umbenennen in old-sample
  4. Erstellen Sie ein neues Repository 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 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.

1440960cookie-checkGit weigert sich, nicht verwandte Historien zusammenzuführen. Was sind „unabhängige Geschichten“?

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

Privacy policy