85

当我尝试将我的分支与远程分支合并时:

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:

如何处理?

4

6 回答 6

90

看起来您有一个打开git commitgit merge正在进行,并且编辑器仍在打开编辑提交消息。

两种选择:

  1. 找到会话并完成它(最好)。
  2. 删除.swp文件(如果您确定其他 git 会话已消失)。

评论澄清:

  • 会话是编辑会话。
  • 您可以通过在编辑会话中输入命令来查看.swp正在使用的:sw内容,但通常它是与您正在使用的文件位于同一目录中的隐藏文件,带有.swp文件后缀(即~/myfile.txt,将是~/.myfile.txt.swp)。
于 2012-11-13T13:48:23.563 回答
34

接受的答案未提及如何删除 .swp 文件。

出现提示时点击“D”,它将删除它。

就我而言,在我点击 D 后,它保留了最新保存的版本,并删除了创建的.swp,因为我错误地退出了 VIM

于 2018-07-13T13:49:34.107 回答
3

.MERGE_MSG.swp 在你的 git 中打开,你只需要删除这个 .swp 文件。就我而言,我使用了以下命令,它运行良好。

rm .MERGE_MSG.swp
于 2019-08-25T11:05:07.197 回答
1

尝试将更改拉入不是从我尝试从中提取的上游分支创建的分支时,我也遇到了此错误。

night-version例如 - 这会创建一个新的上游分支匹配

git checkout upstream/night-version -b testnightversion

这会testmaster在本地创建一个与master上游分支匹配的分支。

git checkout upstream/master -b testmaster 

现在,如果我尝试将更改拉night-versiontestmaster分支会导致此错误。

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

我设法通过导航到正确的分支并拉取更改来解决这个问题。

git checkout testnightversion
git pull upstream night-version // works fine.
于 2016-12-02T05:47:43.750 回答
1

2022 年 2 月更新:

删除.MERGE_MSG.swp以避免E325: ATTENTION

rm .MERGE_MSG.swp

通常.example.swp文件并不重要。

此外,通常.example.swp文件是在原始文件的同一目录中制作的。然后,您无法在终端上列出.example.swp文件。ls您需要使用llorls -a命令来列出.example.swp终端上的文件。

于 2021-04-12T03:26:09.377 回答
0

更多信息... 有时 .swp 文件可能由在后台运行的 vm 持有。尝试删除文件时,您可能会看到权限被拒绝消息。

检查并杀死进程vm

于 2020-03-31T19:30:43.650 回答