Нашел файл подкачки по имени


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

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:

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

3 55

3 ответа:

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

два варианта:

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

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

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

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

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

например-это создает новую ветвь соответствия 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

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

git checkout testnightversion
git pull upstream night-version // works fine.