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進行中のようですが、エディターはまだ開いてコミットメッセージを編集しています。

2 つの選択肢:

  1. セッションを見つけて終了します (推奨)。
  2. ファイルを削除し.swpます (他の git セッションがなくなったことが確実な場合)。

コメントからの明確化:

  • セッションは編集セッションです。
  • 編集セッション内でコマンドを入力すると、何.swpが使用されているかを確認できます:swが、通常は、使用しているファイルと同じディレクトリにある隠しファイルであり、.swpファイル サフィックス (つまり)~/myfile.txtが付いています~/.myfile.txt.swp
于 2012-11-13T13:48:23.563 に答える
34

受け入れられた回答では、.swp ファイルを削除する方法について言及されていません。

プロンプトが表示されたら「D」を押すと削除されます。

私の場合、D を押した後、保存された最新のバージョンはそのまま残り、VIM を誤って終了したために作成された.swpが削除されました。

于 2018-07-13T13:49:34.107 に答える
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.
于 2016-12-02T05:47:43.750 に答える