当我尝试将我的分支与远程分支合并时:
git merge feature/remote_branch
我收到了这条消息:
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:
如何处理?
答案 0 :(得分:66)
看起来您正在打开git commit
或git merge
,并且编辑器仍处于打开状态,正在编辑提交消息。
两种选择:
.swp
文件(如果您确定其他git会话已消失)。评论澄清:
.swp
来查看正在使用的:sw
,但通常它是与您正在使用的文件位于同一目录中的隐藏文件,并带有{{ 1}}文件后缀(即.swp
将为~/myfile.txt
)。答案 1 :(得分:7)
接受的答案未提及如何删除.swp文件。
出现提示时,按“ D”,它将删除它。
以我为例,在我按下D键后,它保留了最新保存的版本,并删除了由于我错误地退出VIM而创建的 .swp
答案 2 :(得分:1)
当我尝试将更改拉入一个不是从我想要拉出的上游分支创建的分支时,我也遇到了这个错误。
例如 - 这会创建一个与上游
匹配night-version
的新分支
git checkout upstream/night-version -b testnightversion
这会在本地创建一个与上游的testmaster
分支匹配的分支master
。
git checkout upstream/master -b testmaster
现在,如果我尝试将night-version
的更改提取到testmaster
分支导致此错误。
git pull upstream night-version //while I'm in `master` cloned branch
我设法通过导航到正确的分支并拉动更改来解决这个问题。
git checkout testnightversion
git pull upstream night-version // works fine.
答案 3 :(得分:0)
.MERGE_MSG.swp已在您的git中打开,您只需要删除此.swp文件即可。就我而言,我使用了以下命令,它运行良好。
rm .MERGE_MSG.swp
答案 4 :(得分:0)
答案 5 :(得分:0)
删除 .MERGE_MSG.swp
以避免 E325: ATTENTION
。
rm .MERGE_MSG.swp
通常 .example.swp
文件并不重要。
另外,通常.example.swp
文件是在原文件的同一目录下制作的。然后,您无法在终端上列出带有 .example.swp
的 ls
文件。您需要使用 ll
或 ls -a
命令在终端上列出 .example.swp
文件。