it-swarm.com.de

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

GIT verwechselt mich weiterhin mit seinen wenig hilfreichen Fehlermeldungen: ( Diese verdient wirklich einen Preis:

"git merge ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben"

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

Törichterweise nahm ich an, Sie könnten die beiden Versionen einfach zusammenführen und damit fertig sein, aber ich kann nicht zusammenführen, da meine Dateien nicht zusammengeführt werden. 

git merge remote/master

führt in

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.

Nach dem Hinzufügen und Festschreiben der lokalen Änderung und dem anschließenden erneuten Zusammenführen bekomme ich also:

merge: remote/master - not something we can merge

Klar fehlt mir hier etwas Wesentliches. Habe ich die falsche Vorstellung davon, was Zusammenführen bedeutet? Wie kann ich dieses Problem mit einem anderen Remote-Master/Local-Master-Zweig beheben?

14
Kokodoko

Die Fehlermeldung: 

merge: remote/master - etwas, das wir nicht zusammenführen können

sagt, dass Git remote/master nicht erkennt. Dies liegt wahrscheinlich daran, dass Sie keine "Remote" namens "Remote" haben. Sie haben eine "entfernte" namens "Origin".

Stellen Sie sich "Remotes" als Alias ​​für die URL Ihres Git-Servers vor. master ist Ihre lokal ausgecheckte Version der Zweigstelle. Origin/master ist die neueste Version von master von Ihrem Git-Server, die Sie abgerufen (heruntergeladen) haben. Ein fetch ist immer sicher, da nur die "Origin/x" -Version Ihrer Niederlassungen aktualisiert wird.

Um Ihren master-Zweig wieder synchron zu erhalten, 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

Mit dem Befehl pull werden fetch und merge für Sie in einem Schritt erledigt.

6
Jonathan.Brink

Ich bin auf das gleiche Problem gestoßen und konnte mich nicht entscheiden, ob ich lachen oder meinen Kopf auf den Tisch schlagen sollte, wenn ich diesen Fehler lese ...

Was git Ihnen wirklich zu sagen versucht: "Sie befinden sich bereits in einem Merge-Status und müssen die Konflikte dort zuerst lösen!"

Sie haben eine Zusammenführung versucht und ein Konflikt ist aufgetreten. Dann bleibt git im Zusammenführungsstatus. 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 dies bedeutet, dass Sie dies aufgrund Ihrer aktuellen nicht zusammengeführten Dateien nicht tun können.

Sie können diesen Status mit git merge --abort verlassen und versuchen, andere Befehle auszuführen.

In meinem Fall habe ich versucht, die Konflikte von Hand zu lösen, wenn der Fehler auftrat ...

0
Tobias Neis

Ich habe wiederholt vor derselben Herausforderung wiederholt, dieses Problem tritt meistens auf, wenn Sie versuchen, aus dem Remote-Repository zu ziehen und einige Dateien in Ihrer lokalen Instanz vorhanden sind, die mit der Remote-Version in Konflikt stehen, wenn Sie git aus einer IDE wie z Als intelligent werden Sie aufgefordert, eine Auswahl zu treffen, wenn Sie Ihre eigenen Änderungen beibehalten möchten oder wenn Sie es vorziehen, dass die Änderungen in der Remote-Version Ihre eigenen überschreiben. Wenn Sie keine Wahl treffen, fallen Sie in diesen Konflikt. Alles was Sie tun müssen, ist zu laufen:

git merge --abort # Der ungelöste Konflikt wird gelöscht 

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

0
Mosaku Abayomi

Ein weiterer möglicher Grund dafür (Intellij war in meinem Fall involviert, wusste jedoch nicht, ob das wichtig war): Versuche, Änderungen von einem Hauptzweig zu einem Zweig eines Feature-Zweigs zusammenzuführen. 

Mit anderen Worten: "main" in "current" in folgender Anordnung zusammenführen:

main
  |
  --feature
      |
      --current

Ich löste alle Konflikte und GiT meldete unverpackte Dateien, und ich blieb hängen, bis ich mich vom Haupt-Feature in das Feature verschmolz.

0