Git 找到名为的交换文件

Git 找到名为的交换文件,git,github,Git,Github,当我尝试将我的分支与远程分支合并时: 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_M

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

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:

如何处理此问题?

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

两种选择:

  • 找到会话并完成它(最好)
  • 删除
    .swp
    文件(如果您确定另一个git会话已消失)
  • 评论的澄清:

    • 该会话是编辑会话
    • 通过在编辑会话中输入命令
      :sw
      ,您可以看到正在使用的
      .swp
      ,但通常它是与正在使用的文件位于同一目录中的隐藏文件,具有
      .swp
      文件后缀(即
      ~/myfile.txt
      将是
      ~/.myfile.txt.swp

    我在尝试将更改拉入一个不是从我试图拉入的上游分支创建的分支时也遇到了这个错误

    这将创建一个新的分支,与上游的
    夜间版本相匹配

    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.
    

    接受的答案没有提到如何删除.swp文件

    当提示出现时,点击“D”,它会将其删除


    在我的例子中,在我点击D之后,它保留了最新保存的版本,并删除了由于我错误地退出VIM而创建的.swp

    。MERGE_MSG.swp在git中打开,您只需要删除这个.swp文件。在我的例子中,我使用了下面的命令,效果很好

    rm .MERGE_MSG.swp
    
    更多信息。。。 有时.swp文件可能被后台运行的vm保留。 尝试删除文件时,您可能会看到“权限被拒绝”消息


    删除
    。合并MSG.swp
    以避免
    E325:注意

    rm .MERGE_MSG.swp
    
    通常
    .example.swp
    文件并不重要


    此外,通常
    .example.swp
    文件位于原始文件的同一目录中。然后,您不能在终端上列出带有
    ls
    .example.swp
    文件。您需要使用
    ll
    ls-a
    命令来列出终端上的
    .example.swp
    文件。

    如何找到这个.swp文件?如何找到“会话”-它意味着什么?完成它,我应该选择什么选项?编辑或恢复它?@TrojanFour您可以详细说明如何完成会话或删除文件吗?有关如何删除.swp文件的详细信息,请参阅下面的我的回答。谢谢-对于在bash程序中制作此文件的人-应该有这样一句话:“如果您希望保留更改,并删除旧的更改,请按d”或者直接点击git clean-fThanks这对我来说很有效。要添加到这个:文件夹可能是隐藏的,所以你必须首先运行:cd.git