web-dev-qa-db-fra.com

Trouvé un fichier d'échange par le nom

Lorsque j'essaie de fusionner ma branche avec une branche distante:

git merge feature/remote_branch

J'ai eu ce message:

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:

Comment gérer cela?

57
Malloc

On dirait que vous avez un git commit ou un git merge ouvert, et qu'un éditeur est toujours ouvert, en train de modifier le message de validation.

Deux choix:

  1. Trouvez la session et terminez-la (préférable).
  2. Supprimez le fichier .swp (si vous êtes sûr que l’autre session git a disparu).

Clarification à partir des commentaires:

  • La session est la session d'édition.
  • Vous pouvez voir quel .swp est utilisé en entrant la commande :sw dans la session d'édition, mais il s'agit généralement d'un fichier caché situé dans le même répertoire que le fichier que vous utilisez, avec un suffixe de fichier .swp (par exemple ~/myfile.txt serait ~/.myfile.txt.swp).
64
trojanfoe

La réponse acceptée ne mentionne pas comment supprimer le fichier .swp. 

Appuyez sur "D" lorsque l'invite apparaît et il va l'enlever. 

Dans mon cas, après avoir appuyé sur D, la dernière version sauvegardée a été laissée intacte et le .swp qui a été créé a été créé, car j’ai mal quitté VIM

4
Robert Sinclair

J'ai également eu cette erreur en essayant d'extraire les modifications dans une branche qui n'est pas créée à partir de la branche en amont d'où j'essaie d'extraire.

Par exemple, cela crée une nouvelle branche correspondant à night-version de l’amont

git checkout upstream/night-version -b testnightversion

Cela crée une branche testmaster en local qui correspond à la branche master d’amont.

git checkout upstream/master -b testmaster 

Maintenant, si j'essaie d'extraire les modifications de night-version dans la branche testmaster, cette erreur se produit.

git pull upstream night-version //while I'm in `master` cloned branch

J'ai réussi à résoudre ce problème en accédant à la branche appropriée et en tirant les modifications.

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

Le fichier .MERGE_MSG.swp est ouvert dans votre git, il vous suffit de supprimer ce fichier .swp. Dans mon cas, j'ai utilisé la commande suivante et cela a bien fonctionné.

rm .MERGE_MSG.swp
0
Abdur Rahman