112

When I try to merge my branch with a remote branch:

git merge feature/remote_branch

I got this message:

E325: ATTENTION
Found a swap file by the name ".git/.MERGE_MSG.swp"
          owned by: xxxxxx   dated: Mon Nov 12 23:17:40 2012
         file name: ~xxxxxx/Desktop/My-ios-App/.git/MERGE_MSG
          modified: YES
         user name: xxxxxx   host name: unknown-b8-8d-12-22-27-72.lan
        process ID: 1639
While opening file ".git/MERGE_MSG"
             dated: Tue Nov 13 14:06:48 2012
      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 .git/MERGE_MSG"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".git/.MERGE_MSG.swp"
    to avoid this message.

Swap file ".git/.MERGE_MSG.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

How to deal with this?

Super Kai - Kazuya Ito
  • 22,221
  • 10
  • 124
  • 129
Malloc
  • 15,434
  • 34
  • 105
  • 192

7 Answers7

109

Looks like you have an open git commit or git merge going on, and an editor is still open editing the commit message.

Two choices:

  1. Find the session and finish it (preferable).
  2. Delete the .swp file (if you're sure the other git session has gone away).

Clarification from comments:

  • The session is the editing session.
  • You can see what .swp is being used by entering the command :sw within the editing session, but generally it's a hidden file in the same directory as the file you are using, with a .swp file suffix (i.e. ~/myfile.txt would be ~/.myfile.txt.swp).
trojanfoe
  • 120,358
  • 21
  • 212
  • 242
38

Accepted answer fails to mention how to delete the .swp file.

Hit "D" when the prompt comes up and it will remove it.

In my case, after I hit D it left the latest saved version intact and deleted the .swp which got created because I exited VIM incorrectly

Robert Sinclair
  • 4,550
  • 2
  • 44
  • 46
7

Feb, 2022 Update:

Remove .MERGE_MSG.swp to avoid E325: ATTENTION.

rm .MERGE_MSG.swp

Normally .example.swp file is not important.

In addition, normally .example.swp file is made in the same directory of the original file. Then, you cannot list .example.swp files with ls on terminal. You need to use ll or ls -a commands to list .example.swp files on terminal.

sideshowbarker
  • 81,827
  • 26
  • 193
  • 197
Super Kai - Kazuya Ito
  • 22,221
  • 10
  • 124
  • 129
6

.MERGE_MSG.swp is open in your git, you just need to delete this .swp file. In my case I used following command and it worked fine.

rm .MERGE_MSG.swp
Abdur Rahman
  • 1,420
  • 1
  • 21
  • 32
1

I've also had this error when trying to pull the changes into a branch which is not created from the upstream branch from which I'm trying to pull.

Eg - This creates a new branch matching night-version of upstream

git checkout upstream/night-version -b testnightversion

This creates a branch testmaster in local which matches the master branch of upstream.

git checkout upstream/master -b testmaster 

Now if I try to pull the changes of night-version into testmaster branch leads to this error.

git pull upstream night-version //while I'm in `master` cloned branch

I managed to solve this by navigating to proper branch and pull the changes.

git checkout testnightversion
git pull upstream night-version // works fine.
Andrew Spencer
  • 15,164
  • 4
  • 29
  • 48
jitendrapurohit
  • 9,435
  • 2
  • 28
  • 39
0

More info... Some times .swp files might be holded by vm that was running in backgroung. You may see permission denied message when try to delete the files.

Check and kill process vm

Community
  • 1
  • 1
Ramakrishna Talla
  • 1,011
  • 12
  • 7
0

This error usually comes when you try to update/rebase the feature/child branch with the master branch. It can be simply solved using the below git commands, First of all, Just type E and hit the Enter button, then write the below commands one by one:

Press i (i for insert)
write your merge message
Press esc (escape)
write:wq (write & quit)
then press enter button
Sudheer Singh
  • 555
  • 5
  • 10