web-dev-qa-db-ja.com

git mergeエラー「スワップファイル.MERGE_MSG.swpはすでに存在します」を解決する方法

私が引くとき:

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.

助けてください:C Idk何をすべきか。プッシュもプルもできません。考えられることはほとんどすべて試しました。私も試しました:git merge --abort。問題は、私がそれをするとき、解決すべき競合を見つけられないように見えることです。

22
Tigerotic

これはVIMからのメッセージです。明らかにgitのテキストエディターとして使用しています。これらの2つのポイントを読んで、それをたどってみましたか?この問題を解決できます。

まず、MERGE_MSGファイル(MERGE_MSG.swpではありません)、存在するかどうか、および内容を確認します。ほとんどの場合、安全に削除できるのはゴミ箱または一時ファイルです。名前から判断すると、これはおそらく、マージコミットメッセージの一時的なテキスト編集領域として使用されるファイル名です。

次に、VIMを使用しているため、VIMが開始されると、独自の内部ニーズに応じてスワップファイルを作成しようとします。エラーメッセージには、~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp。多くの場合、特に古いまたは予期しないものである場合は、このようなスワップファイルを単純に削除できます。ただし、最近いくつかのmerge-commit-message-editingセッションがクラッシュし、多くのクリエイティブテキストを失いたくない場合は、それを削除しないでくださいrecover代わりにそのスワップ、エラーメッセージの(2)で説明されているように。

しかし、あなたは何が起こっているのかわからず、書いたテキストを失うことについて何も言わなかったので、おそらくとにかく自動生成されたMERGE_MSGであるので、私はあなたができると思う:

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

もう一度やってみてください.

また、エラーメッセージの(1)に記載されているヒントを確認することをお勧めします。 psまたはその他の、開いているVIMそのMERGE_MSGを現在編集している可能性のあるセッションがあるかどうかを確認してください。または、それらを終了させる(エスケープ、:q!、enter)(vimは終了時にスワップをクリーンアップします)、またはそれらを終了します(それらを強制終了しますが、スワップファイルを手動で削除する必要があります)。

30
quetzalcoatl