Подтвердить что ты не робот

Найден файл подкачки по названию

Когда я пытаюсь объединить ветку с удаленной ветвью:

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:

Как с этим бороться?

4b9b3361

Ответ 1

Похоже, у вас есть открытый git commit или git merge, и редактор все еще открыт для редактирования сообщения фиксации.

Два варианта:

  1. Найдите сеанс и завершите его (предпочтительно).
  2. Удалите файл .swp (если вы уверены, что другой сеанс git пропал).

Уточнение из комментариев:

  • Сессия является сессией редактирования.
  • Вы можете увидеть, что .swp используется, введя команду :sw в сеансе редактирования, но обычно это скрытый файл в том же каталоге, что и используемый .swp файл, с суффиксом файла .swp (т.е. ~/myfile.txt будет ~/.myfile.txt.swp).

Ответ 2

В принятом ответе не упоминается, как удалить файл .swp.

Нажмите "D", когда появится приглашение, и оно будет удалено.

В моем случае, после того, как я нажал D, он оставил последнюю сохраненную версию без изменений и удалил .swp, который был создан, потому что я неправильно вышел из VIM.

Ответ 3

У меня также была эта ошибка при попытке перетащить изменения в ветку, которая не создана из ветки восходящего потока, из которой я пытаюсь потянуть.

Eg - создает новую ветвь, соответствующую 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.

Ответ 4

.MERGE_MSG.swp открыт в вашем git, вам просто нужно удалить этот .swp файл. В моем случае я использовал следующую команду, и она работала нормально.

rm .MERGE_MSG.swp