Git Merge ist nicht möglich, da ich nicht zusammengeführte Dateien habe

Lesezeit: 3 Minuten

Benutzer-Avatar
Kokodoko

git verwirrt mich weiterhin mit seinen wenig hilfreichen Fehlermeldungen. Dieser hier verdient wirklich einen Preis:

git merge is not possible because you have unmerged files

Meine Situation: Mein Master-Branch auf Github wurde bearbeitet (direkt im Browser), während mein lokaler Master-Branch ebenfalls bearbeitet wurde.

Ich nehme fälschlicherweise an, dass Sie die beiden Versionen einfach zusammenführen und damit fertig sein könnten, aber ich kann auch nicht zusammenführen – weil meine Dateien nicht zusammengeführt sind.

git merge remote/master

ergibt sich

error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

Nachdem ich also die lokale Änderung hinzugefügt und festgeschrieben und dann erneut versucht habe, sie zusammenzuführen, erhalte ich Folgendes:

merge: remote/master - not something we can merge

Offensichtlich fehlt mir hier etwas Wesentliches … Habe ich eine falsche Vorstellung davon, was Zusammenführen bedeutet? Wie behebe ich dieses Problem, dass ich einen anderen Remote-Master/lokalen Master-Zweig habe?

Benutzer-Avatar
Mosaku Abayomi

Ich hatte vor einiger Zeit immer wieder die gleiche Herausforderung. Dieses Problem tritt meistens auf, wenn Sie versuchen, aus dem Remote-Repository zu ziehen und einige Dateien auf Ihrer lokalen Instanz mit der Remote-Version in Konflikt stehen. Wenn Sie Git von einer IDE wie IntelliJ verwenden, werden Sie aufgefordert und dürfen eine Wählen Sie, ob Sie Ihre eigenen Änderungen beibehalten möchten oder ob Sie es vorziehen, dass die Änderungen in der Remote-Version Ihre überschreiben. Wenn Sie keine Wahl treffen, geraten Sie in diesen Konflikt. Alles, was Sie tun müssen, ist Folgendes auszuführen:

git merge --abort # The unresolved conflict will be cleared off

Und Sie können das fortsetzen, was Sie vor der Pause getan haben.

  • Fatal: Es gibt keine Zusammenführung zum Abbrechen

    – John Ktejik

    27. Juli 2020 um 17:47 Uhr

  • Ich habe festgestellt, dass das Ausführen des Befehls “git restore –staged ” das Problem für mich gelöst hat.

    – DeSpeaker

    6. Februar um 17:48 Uhr


Die Fehlermeldung:

merge: remote/master – nichts, was wir zusammenführen können

sagt, dass Git nicht erkennt remote/master. Dies liegt wahrscheinlich daran, dass Sie keine “Fernbedienung” mit dem Namen “remote” haben. Sie haben eine “Fernbedienung” mit dem Namen “Origin”.

Stellen Sie sich “remotes” als Alias ​​für die URL zu Ihrem Git-Server vor. master ist Ihre lokal ausgecheckte Version der Verzweigung. origin/master ist die neuste Version von master von Ihrem Git-Server, die Sie geholt (heruntergeladen) haben. EIN fetch ist immer sicher, da es nur die “origin/x”-Version Ihrer Branches aktualisiert.

Also, um deine zu bekommen master Verzweigen Sie wieder synchron, laden Sie zuerst den neuesten Inhalt vom Git-Server herunter:

git fetch

Führen Sie dann die Zusammenführung durch:

git merge origin/master

…Aber vielleicht wäre der bessere Ansatz:

git pull origin master

Das pull Befehl wird das tun fetch und merge für Sie in einem Schritt.

  • Danke, ich wusste nicht, dass Pull auch zusammenführt. Ich habe einen Abruf und eine Zusammenführung durchgeführt, aber es scheint nichts zu passieren – obwohl Git jetzt sagt, dass alles auf dem neuesten Stand ist. Ich habe erwartet, dass die Zusammenführung einen „Zusammenführungskonflikt“ anzeigt, bei dem Sie die Änderungen, die Sie behalten möchten, manuell bearbeiten müssen.

    – Kokodoko

    18. März 2016 um 14:00 Uhr

  • In diesem Fall sieht es so aus, als ob Git die Diff-Auflösung für Sie durchführen konnte … um sicher zu sein, dass Sie das angenommen haben, was Sie beabsichtigt haben, ist ein gutes “Sanity Check” -Tool, das ich häufig verwende, “gitk”. Es wird mit der Git-Installation geliefert, also sollten Sie es bereits haben. Geben Sie einfach “gitk” auf Ihrem Befehlsterminal ein, um eine GUI-artige Ansicht Ihres Git-Baums zu erhalten.

    – Jonathan. Brink

    18. März 2016 um 14:02 Uhr

  • Beim Merge eingefügte Kommentare in meiner Datei, die so aussehen: <<<<<<

    – Kokodoko

    18. März 2016 um 14:07 Uhr

  • Ja, das klingt nach einem plausiblen Grund dafür … wenn Sie die Zusammenführung erneut durchführen wollten (nachdem Sie Ihr Zusammenführungstool repariert haben), sollten Sie Folgendes tun können: git reset --hard MERGE_HEAD um zu Ihrem Zustand vor der Zusammenführung zurückzukehren

    – Jonathan. Brink

    18. März 2016 um 14:11 Uhr

  • Danke, das beantwortet bereits meine Frage, warum ich nicht zusammenführen konnte (ich musste zuerst die beiden verschiedenen Versionen verfügbar haben). Was jetzt noch bleibt, ist, wie man git dazu bringt, “opendiff/fileMerge” im Falle eines Konflikts automatisch zu öffnen. Ich schätze, das ist eine andere Frage.

    – Kokodoko

    18. März 2016 um 14:27 Uhr

Benutzer-Avatar
Tomasz Bartkowiak

Es könnte die sein Nicht zusammengeführte Pfade diese Ursache

error: Merging is not possible because you have unmerged files.

Wenn ja, versuchen Sie:

git status

wenn es heißt

Sie haben nicht zusammengeführte Pfade.

tun wie vorgeschlagen: Konflikte entweder lösen und dann committen oder Merge ganz mit abbrechen

git merge --abort

Möglicherweise sehen Sie auch Dateien, die unter aufgelistet sind Nicht zusammengeführte Pfadedie Sie dadurch lösen können

git rm <file>

  • Es ist nur so eine wenig hilfreiche Fehlermeldung…. In meinem Fall bedeutet das meistens, dass ich Merge-Konflikte habe, die manuell behoben werden müssen. Es würde sehr helfen, wenn die Fehlermeldung das tatsächlich sagen würde.

    – Kokodoko

    11. September 2020 um 9:57 Uhr

  • nach git status Ich würde tun git add path für Änderungen, die nicht zum Festschreiben bereitgestellt wurden.

    – Prabs

    22. November 2020 um 14:04 Uhr

Benutzer-Avatar
Tobias Nies

Ich bin auf dasselbe Problem gestoßen und konnte mich nicht entscheiden, ob ich lachen oder meinen Kopf auf den Tisch schlagen soll, als ich diesen Fehler las …

Was Git Ihnen wirklich sagen will: „Sie befinden sich bereits in einem Zusammenführungszustand und müssen zuerst die Konflikte dort lösen!“

Sie haben eine Zusammenführung versucht, und es ist ein Konflikt aufgetreten. Dann bleibt git im Zusammenführungszustand und wenn Sie die Zusammenführung mit anderen Befehlen auflösen möchten, denkt git, dass Sie eine neue Zusammenführung ausführen möchten, und sagt Ihnen daher, dass Sie dies aufgrund Ihrer derzeit nicht zusammengeführten Dateien nicht tun können …

Diesen Zustand können Sie mit verlassen git merge --abort und versuchen Sie nun, andere Befehle auszuführen.

In meinem Fall habe ich einen Pull versucht und wollte die Konflikte von Hand lösen, als der Fehler auftrat …

Ich hatte auch ähnliche Probleme.

Mein Problem: Wenn ich einen Zweig zusammenführe und Konflikte mit der IDE löse, zeigt die IDE das Commit-Panel-Board normal an, aber das tut es nicht.

Ich glaube, ich habe erfolgreich zusammengeführt, aber wenn ich drücke oder ziehe, erinnert mich Git daran, „Ihre Änderungen vor dem Zusammenführen festzuschreiben“ oder „Updates wurden abgelehnt, weil die Spitze Ihres aktuellen Zweigs zurückliegt“.

Meine Lösung: git merge --continue

Wenn Sie diese Zusammenführung abbrechen möchten, können Sie auch ausführen git merge --abort

Benutzer-Avatar
AP

Der einfache Weg ist Typ git status in Ihr Terminalfenster/cmd. Dies sollte Ihnen die Dateien zeigen, die entweder hinzugefügt oder entfernt werden müssen
Geben Sie hier die Bildbeschreibung ein

und dann kannst du entweder tun git add gefolgt vom Dateipfad oder entfernen Sie sie mit git rm auch gefolgt vom Dateipfad.

Benutzer-Avatar
davidjmccleland

Eine weitere mögliche Ursache dafür (Intellij war in meinem Fall beteiligt, aber ich bin mir nicht sicher, ob das eine Rolle spielt): Der Versuch, Änderungen von einem Hauptzweig in einen Zweig eines Feature-Zweigs einzufügen.

Mit anderen Worten, Zusammenführen von “main” in “current” in der folgenden Anordnung:

main
  |
  --feature
      |
      --current

Ich habe alle Konflikte gelöst und GiT hat nicht zusammengeführte Dateien gemeldet, und ich steckte fest, bis ich von Haupt zu Feature und dann von Feature zu Current zusammengeführt hatte.

1319480cookie-checkGit Merge ist nicht möglich, da ich nicht zusammengeführte Dateien habe

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

Privacy policy