So lösen Sie den Git-Merge-Fehler „Auslagerungsdatei .MERGE_MSG.swp existiert bereits“

Lesezeit: 6 Minuten

Benutzer-Avatar
Tigerotisch

Wenn ich ziehe:

E325: ATTENTION
Found a swap file by the name "~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp"
          owned by: username   dated: Wed Dec 14 12:28:45 2016
         file name: ~username/Documents/Sites/recipegenerator/.git/MERGE_MSG
          modified: YES
         user name: username   host name: Users-MacBook-Pro.local
        process ID: 33747
While opening file "/Users/larsvanurk/Documents/Sites/recipegenerator/.git/MERGE_MSG"
             dated: Thu Dec 22 14:06:17 2016
      NEWER than swap file!

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.
    Quit, or continue with caution.

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r /Users/username/Documents/Sites/recipegenerator/.git/MERGE_MSG"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "/Users/username/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp"
    to avoid this message.

Swap file "~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp" already exists!

Wenn ich drücke:

To  https://github.com/nickname/recipegenerator.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/nickname/recipegenerator.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Bitte helfen Sie: C Ich weiß, was zu tun ist. Ich kann weder drücken noch ziehen. Ich habe so ziemlich alles ausprobiert, was mir eingefallen ist. Ich habe auch versucht: git merge –abort. Die Sache ist, wenn ich das tue, kann ich meinen Konflikt nicht finden, den ich lösen sollte.

  • Mögliches Duplikat von Found a swap file by the name

    – Sebastian D’Agostino

    3. Mai 2018 um 14:07 Uhr

Benutzer-Avatar
Quetzalcoatl

Es ist eine Nachricht von VIM, die Sie anscheinend als Texteditor in Git verwenden. Haben Sie versucht, diese zwei (1) (2) Punkte zu lesen und zu befolgen? Einer von ihnen wird wahrscheinlich wahr sein und Sie dieses Problem lösen lassen.

Überprüfen Sie das zunächst einmal MERGE_MSG Datei (nicht MERGE_MSG.swp) und prüfen Sie, ob sie existiert und was darin enthalten ist. Höchstwahrscheinlich ist es der Papierkorb oder eine temporäre Datei, die sicher gelöscht werden kann. Dem Namen nach zu urteilen, handelt es sich wahrscheinlich um den Dateinamen, der als temporärer Textbearbeitungsbereich für Merge-Commit-Nachrichten verwendet wird.

Da Sie VIM verwenden, versucht VIM dann beim Start, eine Auslagerungsdatei für seine eigenen internen Bedürfnisse zu erstellen. Die Fehlermeldung sagt es ~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp. Oft können Sie solche Auslagerungsdateien einfach löschen, insbesondere wenn sie alt oder unerwartet sind. Wenn jedoch kürzlich eine Merge-Commit-Message-Editing-Sitzung abgestürzt ist und Sie viel kreativen Text hatten, den Sie nicht verlieren möchten, löschen Sie ihn nicht und genesen dass Swap stattdessen, wie in (2) in der Fehlermeldung beschrieben.

Da Sie jedoch nicht wissen, was los ist, und Sie nichts über den Verlust von Text gesagt haben, den Sie geschrieben haben, und da es sich wahrscheinlich nur um eine MERGE_MSG handelt, die sowieso automatisch generiert wurde, können Sie Folgendes tun:

git merge --abort
rm ~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp

und versuchen Sie noch einmal, was Sie getan haben.

Außerdem ist es gut, den in (1) erwähnten Hinweis in der Fehlermeldung zu überprüfen. Überprüfen Sie mit ps oder was auch immer für offene VIM-Sitzungen, die gerade diese MERGE_MSG bearbeiten könnten. Wenn Sie welche entdecken, dann gehen Sie zu ihnen und beenden Sie entweder die Bearbeitung oder beenden Sie sie (escape, :q!, enter) (vim bereinigt Swaps beim Beenden) oder beenden Sie sie (töten Sie sie, aber dann müssen Sie sie beenden Auslagerungsdateien manuell entfernen).

Sie müssen den aktuellen Commit abbrechen durch

git merge --abort

dann müssen Sie die Zusammenführungsnachrichtendatei löschen.

Gehen Sie in das Projektverzeichnis und entfernen Sie die Datei mit dem folgenden Befehl

rm .git/.MERGE_MSG.swp

Sie können dies auch mit dem folgenden einzelnen Befehl tun

git merge --abort && rm .git/.MERGE_MSG.swp

  • Wie unterscheidet sich das von meiner 4-jährigen Antwort? Trotzdem ist es definitiv prägnanter als meins 🙂

    – Quetzalcoatl

    27. Oktober 2020 um 10:58 Uhr


Benutzer-Avatar
Hend El-Sahli

In meinem Fall gab es ein Problem beim Schließen VI-Editor

  • Neustart des Terminals funktioniert nicht.
  • Ein Neustart meines Mac hat das Problem gelöst.

  • “Durch einen Neustart meines Mac wurde das Problem behoben.” – Es sollte keinen Unterschied gemacht haben. Wenn ja, dann haben Sie anscheinend einen anderen VIM-Prozess ausgeführt. Als Sie Ihren Mac neu gestartet haben, wurden alle Anwendungen geschlossen und diese bösartige VIM-Sitzung hat ihren Papierkorb bereinigt. Versuchen Sie beim nächsten Mal, PS (oder was auch immer es auf dem Mac ist) auszuführen, und prüfen Sie, ob es irgendwelche VIM-Prozesse gibt, die Sie nicht erwarten.

    – Quetzalcoatl

    27. Oktober 2020 um 11:01 Uhr

  • @quetzalcoatl, es hat für mich einen Unterschied gemacht. Während ich rebasierte, stürzte mein Computer ab, also zwang ich ihn, ihn herunterzufahren. Als ich meinen Computer wieder einschaltete, wurde ich gefragt, ob ich meine Sitzung fortsetzen möchte. Ich habe “Ja” ausgewählt, und als ich versuchte, meine Rebase fortzusetzen, erhielt ich den Fehler, den OP in der Frage erwähnte. Das Abbrechen der Rebase hat nicht geholfen. Aber das Neustarten meines Mac hat funktioniert. Ich wette, wenn die Eingabeaufforderung “Nein” zum Neustarten eines neuen Zustands beantwortet worden wäre, wäre dieser Fehler nicht aufgetreten.

    – Grantespo

    25. Februar 2021 um 1:15 Uhr


Normalerweise erhalten Sie diese Fehlermeldung, wenn Sie GIT-Operationen von zwei verschiedenen Orten aus durchführen. Als ob ich dieses Problem bekommen habe, als ich Git Bash (Befehlszeile) und Visual Studio zusammen verwendet habe, um Git-Operationen auszuführen.

Grund:

Dieses Problem tritt auf, wenn in einer der beiden Instanzen von GIT eine Commit- oder Zusammenführungssitzung ausgeführt wird. dh Git Bash & Visual Studio Git. Beide Instanzen versuchen, dieselbe Datei zu bearbeiten, und wir erhalten diese Fehlermeldung.

Lösung:

Schließen Sie die Commit- oder Merge-Sitzung in einer der beiden geöffneten Instanzen ab. Löschen Sie danach die .swp-Datei (falls sie nach dem Festschreiben noch vorhanden ist (von einer beliebigen 1 der Instanz).

Ref – https://stackoverflow.com/a/13361874/1273882

Ich habe das gleiche Problem mit meinem Terminal, ich beende das Terminal und es funktioniert für mich !!!

  • Auch hier habe ich mein Terminal geschlossen und neu gestartet und es wurde gelöst

    – Steve Favre

    19. August 2020 um 13:52 Uhr

Benutzer-Avatar
Galvarado

Hatte das gleiche Problem und habe es behoben, indem ich das Terminal beendet und erneut festgeschrieben habe.

  • Auch hier habe ich mein Terminal geschlossen und neu gestartet und es wurde gelöst

    – Steve Favre

    19. August 2020 um 13:52 Uhr

1298160cookie-checkSo lösen Sie den Git-Merge-Fehler „Auslagerungsdatei .MERGE_MSG.swp existiert bereits“

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

Privacy policy