Immer wenn ich versuche, Git einzufügen, bekomme ich Folgendes:
You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you can merge.
Betrieb git status
Ich bekomme:
# On branch master
nothing to commit (working directory clean)
Oder laufen git ls-files -u
Ich bekomme nichts.
Betrieb git add .
und ein erneuter Versuch macht keinen Unterschied.
Was ist los?
Okay, ich habe endlich eine Antwort gefunden: git commit -m "Test"
anscheinend behoben. Das Ergebnis war ein leerer Commit ohne jegliche Änderungen. Sogar Github zeigt ein leeres Commit, aber es funktioniert.
Hatten Sie am Ende ein leeres Merge-Commit (zwei Eltern) oder nur ein leeres Commit? Im letzteren Fall hätten Sie löschen können .git/MERGE_HEAD
.
Aktualisieren: Anstatt zu löschen MERGE_HEAD
von Hand könnte man auch verwenden git merge --abort
(ab git 1.7.4) oder git reset --merge
(ab git 1.6.2).
Es ist auch erwähnenswert, dass Sie mindestens ab Git 1.8.3 (vielleicht früher?) a sehen sollten status
Nachricht wie diese, wenn eine tatsächliche Zusammenführung im Gange ist und festgeschrieben werden muss (falls Sie angegeben haben --no-commit
zum Beispiel):
# On branch master
# All conflicts fixed but you are still merging.
# (use "git commit" to conclude merge)
#
nothing to commit, working directory clean
Wenn Sie dies nicht sehen und trotzdem erhalten MERGE_HEAD
Achtung, da ist etwas durcheinander geraten und das sollten Sie wohl einfach tun --abort
um wieder in einen sauberen Zustand zu kommen.
Zusätzliche Details aus Kommentaren
Während einer Zusammenführung erstellt Git eine MERGE_HEAD-Datei im Stammverzeichnis des .git-Ordners (neben HEAD, ORIG_HEAD, wahrscheinlich FETCH_HEAD usw.), um Informationen über die laufende Zusammenführung zu verfolgen (insbesondere die SHA(s) des/der Commit(s). ) mit dem aktuellen HEAD zusammengeführt). Wenn Sie das löschen, wird Git nicht länger davon ausgehen, dass eine Zusammenführung im Gange ist. Wenn wirklich eine Zusammenführung im Gange ist, möchten Sie diese Datei natürlich nicht löschen.
Verwenden git reset
Befehl, ohne Parameter.
Dokumente