GIT-Zusammenführungsfehler "Festschreiben ist nicht möglich, da Sie nicht zusammengeführte Dateien haben"


172

Daher habe ich vergessen, meinen Code vor dem Bearbeiten abzurufen. Als ich dann den neuen Code festschrieb und versuchte zu pushen, wurde der Fehler Push nicht möglich. Zu diesem Zeitpunkt habe ich einen "Git Pull" durchgeführt, bei dem einige Dateien mit Konflikten hervorgehoben wurden. Ich habe die Konflikte beseitigt, weiß aber nicht, was ich von hier aus tun soll.

Ich habe es git commiterneut versucht, aber es heißt "Commit ist nicht möglich, weil Sie nicht zusammengeführte Dateien haben".

Antworten:


243

Wenn Sie die Konflikte behoben haben, mit denen Sie die Dateien zur Bühne hinzufügen müssen git add [filename], schreiben Sie wie gewohnt fest.


2
Was ist, wenn dies die Dateien sind, an denen ich nicht gearbeitet habe? Soll ich sie dann noch hinzufügen? Was ist der beste Weg, um damit umzugehen?
R11G

1
Ich musste dies für eine Datei tun, die in einem Zweig gelöscht wurde, den ich mit dem aktuellen Zweig zusammenführte. Git hat es als Konflikt gekennzeichnet, daher musste ich die Datei lokal löschen git add the_file, um die Zusammenführung festzuschreiben.
Brendon Muir

Wie finde ich eine Liste von Konflikten?
Polina-C

7
git statuszeigt Ihnen die Dateien, die Konflikte haben
jonnystoten

@jonnystoten danke für deinen Kommentar! Ich habe git statuseine Datei verwendet und gefunden, in der stand both deleted. Die WebStorm-Benutzeroberfläche zeigte das Problem nicht an, sagte jedoch, dass keine Zusammenführung durchgeführt werden konnte. Aufgelöst!
Yuri Predborski

52

Sie müssen zwei Dinge tun. Fügen Sie zuerst die Änderungen mit hinzu

git add .
git stash  

git checkout <some branch>

Es sollte Ihr Problem so lösen, wie es für mich gelöst wurde.


Es ist nicht nur git add erforderlich. würde ausreichen
Rais Iqbal

3
Auch dies ist ein schwerer Schlag, wenn Sie nicht git addalle Ihre Arbeitsdateien wollen
Courtsimas

11

Sie können git stashdas aktuelle Repository speichern, bevor Sie das gewünschte Commit ausführen (nachdem Sie die Änderungen aus dem Upstream-Repo mit zusammengeführt haben git stash pop). Ich musste das gestern tun, als ich das gleiche Problem hatte.


1

Dieser Fehler tritt auf, wenn Sie die Konflikte lösen, die Datei jedoch noch im Bühnenbereich hinzugefügt werden muss. git hinzufügen. würde es lösen. Versuchen Sie dann, ein Commit durchzuführen und zusammenzuführen.


0

Ich hatte ein ähnliches Problem, das darauf hinauslief, Dateien unter "nicht zusammengeführten Pfaden" zu entfernen.

Diese Dateien mussten mit entfernt werden git rm


0

Also aus dem obigen Fehler. Alles, was Sie tun müssen, um dieses Problem zu beheben, ist, Ihren Code zurückzusetzen. ( git revert HEAD) dann git pullund dann wiederholen Sie Ihre Änderungen, dann git pullwieder und konnte ohne Fehler festschreiben oder zusammenführen.


0

Seit Git 2.23 (August 2019) haben Sie jetzt eine Verknüpfung dazu : git restore --staged [filepath]. Mit diesem Befehl können Sie eine Datei mit Konflikten ignorieren, ohne diese hinzufügen und entfernen zu müssen.

Beispiel:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

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.