113 votes

J'ai trouvé un fichier d'échange du nom de

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

git merge feature/remote_branch

J'ai reçu 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 faire face à cette situation ?

110voto

trojanfoe Points 61927

On dirait que vous avez un git commit o git merge en cours, et un éditeur est toujours ouvert pour modifier le message de livraison.

Deux choix :

  1. Trouver la session et la terminer (préférable).
  2. Supprimer le .swp (si vous êtes sûr que l'autre session git a disparu).

Clarification des commentaires :

  • En session est la session de montage.
  • Vous pouvez voir ce que .swp est utilisé en entrant la commande :sw au sein de la session d'édition, mais il s'agit généralement d'un fichier caché dans le même répertoire que le fichier que vous utilisez, avec une balise .swp suffixe du fichier (c'est-à-dire ~/myfile.txt serait ~/.myfile.txt.swp ).

38voto

Robert Sinclair Points 1342

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

Appuyez sur "D" lorsque l'invite apparaît et cela le supprimera.

Dans mon cas, après avoir appuyé sur D, il a laissé intacte la dernière version sauvegardée et a supprimé la .swp qui a été créé parce que j'ai quitté VIM de manière incorrecte.

8voto

Kai Points 350

Fév. 2022 Mise à jour :

Retirer .MERGE_MSG.swp pour éviter E325: ATTENTION .

rm .MERGE_MSG.swp

Normalement .example.swp n'est pas important.

En outre, normalement .example.swp est faite dans le même répertoire que le fichier original. Dans ce cas, vous ne pouvez pas répertorier .example.swp des fichiers avec ls sur le terminal. Vous devez utiliser ll o ls -a Commandes à énumérer .example.swp sur le terminal.

6voto

Abdur Rahman Points 162

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

rm .MERGE_MSG.swp

1voto

jitendrapurohit Points 5526

J'ai également eu cette erreur en essayant de tirer les changements dans une branche qui n'est pas créée à partir de la branche amont à partir de laquelle j'essaie de tirer.

Eg - Ceci crée une nouvelle branche correspondant night-version d'amont

git checkout upstream/night-version -b testnightversion

Cela crée une branche testmaster en local qui correspond au master branche de l'amont.

git checkout upstream/master -b testmaster 

Maintenant, si j'essaie de tirer les changements de night-version en testmaster conduit à cette erreur.

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

J'ai réussi à résoudre ce problème en naviguant vers la branche appropriée et en tirant les changements.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X