Versuch, Dateien aus meinem Github-Repository abzurufen: “Weigern, nicht zusammenhängende Historien zusammenzuführen”
Lesezeit: 5 Minuten
Ich lerne Git und folge dem Git-Community-Buch.
Früher (vor langer Zeit) habe ich mit einigen Dateien ein öffentliches Repository auf Github erstellt. Jetzt habe ich ein lokales Git-Repository auf meinem aktuellen Computer eingerichtet und einige Dateien übergeben. Dann habe ich eine Fernbedienung hinzugefügt, die auf meine Github-Seite zeigt:
Ich sehe jedoch keine neuen Dateien in meinem lokalen Verzeichnis. Wie kann ich sie bekommen?
Ich habe auch versucht, dies zu tun:
[root@osboxes c]# git pull learnc master
From https://github.com/michaelklachko/Learning-C
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
Übrigens, lokal bin ich im Master-Zweig (es gibt keine anderen Zweige):
[root@osboxes c]# git status
On branch master
nothing to commit, working directory clean
Haben Sie beim Einrichten Ihres lokalen Repos Ihr Github-Repo geklont oder gerade gemacht? git init? Im letzteren Fall sind diese Repos nicht verwandt (haben keine gemeinsamen Commits) und Sie können sie nicht zusammenführen (Pull ist Abrufen + Zusammenführen).
– Paulus
7. Juli 16 um 21:40 Uhr
Ich habe git init. Soll ich also mein Github-Repo klonen, um dies zu beheben?
– Michael SB
7. Juli 16 um 21:41 Uhr
Sie können Ihr Github-Repo klonen und damit weiterarbeiten, aber es bleibt immer noch ein separates Repo. Möchten Sie zwei voneinander unabhängige Historien zusammenführen?
– Paulus
7. Juli 16 um 21:42 Uhr
Ich denke, ich möchte Historien zusammenführen, aber eigentlich möchte ich nur Dateien sowohl lokal als auch auf Github kombinieren. Ich meine, ich interessiere mich nicht wirklich für die Geschichte der alten Dateien, die ich auf Github habe.
– Michael SB
7. Juli 16 um 21:44 Uhr
stackoverflow.com/a/36528527/2303202
– max630
10. Juli 16 um 12:58 Uhr
Nimmermehr
Versuchen --allow-unrelated-histories
Wie max630 kommentierte, oder wie hier erklärt, weigerte sich Git, nicht verwandte Historien zusammenzuführen
Warum gibt es keine Konfigurationsoption, um dies immer einzustellen? Jedes Mal, wenn ich diese Option suchen muss; Ich arbeite seit 2k8 mit git und bin total genervt von diesem Babysitten. Dumme Option war nicht immer da. Zumindest sollte die Ablehnungsnachricht die zu verwendende Außerkraftsetzung enthalten.
Vielen Dank für die Ausarbeitung der obigen Lösung.
– Rahul Raj
28. Mai ’19 um 17:10 Uhr
Ich bin zwar dafür, die Arbeitsprobleme der Leute zu entsperren, aber ich denke nicht, dass “push –force” oder “–allow_unrelated_histories” neuen Benutzern als allgemeine Lösungen beigebracht werden sollten, weil sie ein Repository wirklich verwüsten können, wenn man sie verwendet ohne zu verstehen, warum die Dinge überhaupt nicht funktionieren.
Wenn Sie eine Situation wie diese haben, in der Sie mit einem lokalen Repository begonnen haben und eine Remote auf GitHub erstellen möchten, mit der Sie Ihre Arbeit teilen können, müssen Sie auf etwas achten.
Wenn Sie das neue Online-Repository erstellen, gibt es eine Option „Dieses Repository mit einer README initialisieren“. Wenn Sie das Kleingedruckte lesen, steht dort: „Überspringen Sie diesen Schritt, wenn Sie ein vorhandenes Repository importieren.“
Möglicherweise haben Sie dieses Kontrollkästchen aktiviert. Oder Sie haben online ein Add/Commit vorgenommen, bevor Sie einen ersten Push versucht haben. Was passiert, ist, dass Sie an jedem Ort einen eindeutigen Commit-Verlauf erstellen, der ohne die in Nevermores Antwort erwähnte Sondergenehmigung nicht abgeglichen werden kann (weil Git nicht möchte, dass Sie so arbeiten). Sie können einige der hier erwähnten Ratschläge befolgen oder, einfacher gesagt, diese Option einfach nicht aktivieren, wenn Sie das nächste Mal einige lokale Dateien mit einer brandneuen Fernbedienung verknüpfen möchten. Halten Sie die Fernbedienung für diesen ersten Push sauber.
Referenz: Meine erste Erfahrung mit git + hub bestand darin, auf dasselbe Problem zu stoßen und viel zu lernen, um zu verstehen, was passiert war und warum.
Auf Ihrem Zweig – sagen Sie Master, ziehen Sie und erlauben Sie nicht verwandte Historien
Wenn es an einem Ende keinen wesentlichen Verlauf gibt (auch bekannt als wenn es sich nur um ein einzelnes Readme-Commit auf dem Github-Ende handelt), finde ich es oft einfacher, das Readme manuell in mein lokales Repo zu kopieren und eine git push -f um meine Version zum neuen Root-Commit zu machen.
Ich finde, es ist etwas weniger kompliziert, erfordert keine Erinnerung an ein obskures Flag und hält den Verlauf etwas sauberer.
Tasnim Fabiha
Als ich benutzte --allow-unrelated-histories, hat dieser Befehl zu viele Konflikte erzeugt. Es gab Konflikte in Dateien, an denen ich nicht einmal gearbeitet habe. Um über den Fehler hinwegzukommen " Refusing to merge unrelated histories"ich habe folgenden Rebase-Befehl verwendet:
Nach diesem Commit werden die nicht festgeschriebenen Änderungen mit einer Commit-Nachricht festgeschrieben. Führen Sie abschließend den folgenden Befehl aus:
git rebase --continue
Danach war meine Arbeitskopie mit der Remote-Kopie auf dem neuesten Stand und ich konnte meine Änderungen wie zuvor pushen. Keine unzusammenhängenden Verlaufsfehler mehr beim Ziehen.
Haben Sie beim Einrichten Ihres lokalen Repos Ihr Github-Repo geklont oder gerade gemacht?
git init
? Im letzteren Fall sind diese Repos nicht verwandt (haben keine gemeinsamen Commits) und Sie können sie nicht zusammenführen (Pull ist Abrufen + Zusammenführen).– Paulus
7. Juli 16 um 21:40 Uhr
Ich habe git init. Soll ich also mein Github-Repo klonen, um dies zu beheben?
– Michael SB
7. Juli 16 um 21:41 Uhr
Sie können Ihr Github-Repo klonen und damit weiterarbeiten, aber es bleibt immer noch ein separates Repo. Möchten Sie zwei voneinander unabhängige Historien zusammenführen?
– Paulus
7. Juli 16 um 21:42 Uhr
Ich denke, ich möchte Historien zusammenführen, aber eigentlich möchte ich nur Dateien sowohl lokal als auch auf Github kombinieren. Ich meine, ich interessiere mich nicht wirklich für die Geschichte der alten Dateien, die ich auf Github habe.
– Michael SB
7. Juli 16 um 21:44 Uhr
stackoverflow.com/a/36528527/2303202
– max630
10. Juli 16 um 12:58 Uhr