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?
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
.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
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.
Source: Stackoverflow.com