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:

[root@osboxes c]# git remote add learnc https://github.com/michaelklachko/Learning-C

Das schien erfolgreich zu sein:

[root@osboxes c]# git remote show learnc
* remote learnc
  Fetch URL: https://github.com/michaelklachko/Learning-C
  Push  URL: https://github.com/michaelklachko/Learning-C
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (local out of date)

Jetzt möchte ich die Dateien von meinem Github-Repo auf meinen Computer herunterladen. Ich tat dies:

[root@osboxes c]# git fetch learnc
[root@osboxes c]# git merge learnc/master
warning: refname 'learnc/master' is ambiguous.
Already up-to-date.

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

Versuch Dateien aus meinem Github Repository abzurufen Weigern nicht zusammenhangende Historien
Nimmermehr

Versuchen --allow-unrelated-histories

Wie max630 kommentierte, oder wie hier erklärt, weigerte sich Git, nicht verwandte Historien zusammenzuführen

  • wie auf der vermerkt Github-Versionshinweise

    – systemsüchtig

    12. September 16 um 9:44 Uhr

  • 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.

    – njow

    12. Juli 18 um 20:29 Uhr

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

Konflikte lösen, dann

git add -A .
git commit -m "Upload"
git push

  • 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

git pull origin master --allow-unrelated-histories

Hat für mich funktioniert.

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.

Versuch Dateien aus meinem Github Repository abzurufen Weigern nicht zusammenhangende Historien
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:

git pull --rebase=preserve --allow-unrelated-histories

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.

1643905687 158 Versuch Dateien aus meinem Github Repository abzurufen Weigern nicht zusammenhangende Historien
KayV

Führen Sie den folgenden Befehl aus:

git pull origin master --allow-unrelated-histories

Ein Zusammenführungs-Vim wird geöffnet. Fügen Sie eine Zusammenführungsnachricht hinzu und:

  1. Drücken Sie ESC
  2. Drücken Sie Umschalt + ‘;’
  3. Drücken Sie „w“ und dann „q“.

Und Sie können loslegen.

.

757490cookie-checkVersuch, Dateien aus meinem Github-Repository abzurufen: “Weigern, nicht zusammenhängende Historien zusammenzuführen”

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

Privacy policy