Wie können Sie die Zusammenführung einer Datei abschließen?


102

Nachdem ich eine Datei in Git zusammengeführt hatte, habe ich versucht, das Repository abzurufen, aber es ist ein Fehler aufgetreten:

Sie haben Ihre Fusion nicht abgeschlossen. (MERGE_HEAD existiert)

Wie schließt man eine Fusion ab?

Antworten:


94

Überprüfen Sie den Status ( git status) Ihres Repositorys. Jede nicht zusammengeführte Datei (nachdem Sie Konflikte selbst gelöst haben) sollte hinzugefügt werden ( git add), und wenn es keine nicht zusammengeführte Datei gibt, sollten Sie dies tungit commit


11
Aber was ist, wenn alles festgeschrieben ist ( git statuszeigt ein sauberes Arbeitsverzeichnis) und der obige Fehler immer noch auftritt?
Marius Soutier

1
@Marius Stellen Sie sicher, dass Sie Standard git statusund keinen Alias ​​ausführen, der Nachrichten herausfiltert. In der aktuellen Version wird beim Ausführen des Git-Status die Meldung angezeigt, was Sie tun müssen, um die Zusammenführung abzuschließen. Und wenn Sie absolut sicher sind, dass alles zusammengeführt wurde und Sie nichts verlieren, können Sie einfach Dateien in .git / MERGE * entfernen, in denen gespeichert wird, was Sie zusammenführen wollten, und die Standard-Commit-Nachricht für diese Zusammenführung
MBO

1
Danke, das habe ich schließlich getan, aber irgendwie scheint das fehlerhaft zu sein. Wie kann ein MERGE_HEAD existieren, wenn Sie alles zusammengeführt und festgeschrieben haben?
Marius Soutier

2
Ja, ich hatte gerade das gleiche Problem wie Marius, hatte eine Fusion durchgeführt, die Konflikte gelöst, aber jetzt (irgendwie) nichts zu begehen. Musste die MERGE * -Dateien wie vorgeschlagen manuell löschen.
Simon East

@ Johndpope Power ("tnx", 100)
Knagode

31

Hinweis und Aktualisierung:

Seit Git1.7.4 (Januar 2011) haben Sie git merge --abortauch " git reset --merge", wenn eine Zusammenführung durchgeführt wird.

Aber wenn Sie die Zusammenführung abschließen möchten, während irgendwie nichts mehr hinzugefügt werden muss, kann ein Rohöl rm -rf .git/MERGE*ausreichen, damit Git die aktuelle Zusammenführung vergisst.


Wenn Sie MERGE_HEAD entfernen, hat das resultierende Commit dann nicht nur ein übergeordnetes Element, sodass Sie nicht den Verlauf des zusammengeführten Zweigs haben?
Jason Goemaat

@JasonGoemaat Wenn man bedenkt, dass wir versuchen, die Zusammenführung abzubrechen , würde es sowieso kein "resultierendes Commit" geben.
VonC


1

Wenn dieser Fehler in SourceTree auftritt, gehen Sie zu Aktionen> Konflikte lösen> Zusammenführung neu starten.

Die verwendete SourceTree-Version ist 1.6.14.0


0

Ich hatte den gleichen Fehler und habe den Artikel auf Google befolgt, der mein Problem löst. Sie haben Ihre Fusion nicht abgeschlossen


Ein Link zu einer Lösung ist immer willkommen. Bitte fügen Sie Ihrer Antwort die wesentlichen Informationen hinzu, da der Link möglicherweise veraltet ist.
Slfan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.