如何解决git合并错误“交换文件. MERGE_MSG. swp已经存在”

6rvt4ljy  于 2023-02-02  发布在  Git
关注(0)|答案(7)|浏览(1007)

当我拉动时:

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!

当我按下:

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.

请帮忙:我不知道该怎么做。我不能推也不能拉。我几乎试了所有我能想到的方法。我还试了:git merge --abort。问题是当我这么做的时候,我似乎找不到我应该解决的冲突。

sqougxex

sqougxex1#

这是一条来自VIM的消息,显然你在git中使用它作为文本编辑器。你试过阅读并遵循这两(1)(2)点吗?其中一条可能是正确的,它会帮助你解决这个问题。
首先,检查MERGE_MSG文件(不是MERGE_MSG.swp),看看它是否存在以及里面有什么。很可能是垃圾或者是一个可以安全删除的临时文件。从文件名判断,它可能是用作合并提交消息的临时文本编辑区的文件名。
然后,由于您使用VIM,当VIM启动时,它会尝试为自己的内部需要创建一个交换文件。错误消息显示它是~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp。通常,您可以简单地删除这样的交换文件,特别是当它们很旧或意外时。但是,如果最近某个合并-提交-消息编辑会话崩溃,且如果您有许多不想丢失创意文本-则不要删除它并恢复交换,如错误消息(2)中所述。
然而,既然你不知道发生了什么,你也没有提到丢失你写的一些文本,而且既然它可能只是一个自动生成的MERGE_MSG,我想你可以:

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

再试试你刚才做的事。
同样,检查错误消息中(1)提到的提示也是很好的。用ps或其他工具检查任何打开的VIM会话,这些会话当前可能正在编辑MERGE_MSG。如果你发现了任何一个,那么,好吧,找到它们,要么完成编辑,要么让它们退出(escape,:q!,enter)(vim会在退出时清理交换文件),要么终止它们(杀死它们,但之后你需要手动删除交换文件)。

ssgvzors

ssgvzors2#

你需要中止当前的提交

git merge --abort

则需要删除合并消息文件。
转到项目目录并使用以下命令删除文件

rm .git/.MERGE_MSG.swp

您也可以使用以下单个命令执行此操作

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

drnojrws3#

在我的示例中,关闭VI编辑器时出现问题...

  • 重启终端不起作用。
  • 重新启动我的mac解决了这个问题。
5t7ly7z5

5t7ly7z54#

通常,当你在两个不同的地方执行GIT操作时,你会收到这个错误消息。就像我在使用Git Bash(命令行)和Visual Studio一起执行Git操作时遇到这个问题一样。

    • 原因:**

当提交或合并会话在GIT的两个示例(即Git Bash和Visual Studio Git)中的一个中进行时,就会发生此问题。两个示例都试图编辑同一个文件,我们会收到此错误消息。

    • 解决方案:**

在两个打开的示例中的一个中完成提交或合并会话。然后删除. swp文件(如果提交后它仍然存在(从任何一个示例中))。
参考-https://stackoverflow.com/a/13361874/1273882

wi3ka0sx

wi3ka0sx5#

git合并--中止&& rm. git/.合并消息. swp
这对我很有效。

yh2wf1be

yh2wf1be6#

我的终端也有同样的问题,我退出了终端,它为我工作!

2fjabf4q

2fjabf4q7#

有同样的问题,并修复了它退出终端和再次提交。

相关问题