web-dev-qa-db-fra.com

Comment résoudre l'erreur de fusion git "Le fichier d'échange .MERGE_MSG.swp existe déjà"

Quand je tire:

E325: ATTENTION
Found a swap file by the name "~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp"
          owned by: username   dated: Wed Dec 14 12:28:45 2016
         file name: ~username/Documents/Sites/recipegenerator/.git/MERGE_MSG
          modified: YES
         user name: username   Host name: Users-MacBook-Pro.local
        process ID: 33747
While opening file "/Users/larsvanurk/Documents/Sites/recipegenerator/.git/MERGE_MSG"
             dated: Thu Dec 22 14:06:17 2016
      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 /Users/username/Documents/Sites/recipegenerator/.git/MERGE_MSG"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file "/Users/username/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp"
    to avoid this message.

Swap file "~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp" already exists!

Quand je pousse:

To  https://github.com/nickname/recipegenerator.git
 ! [rejected]        master -> master (fetch first)
error: failed to Push some refs to 'https://github.com/nickname/recipegenerator.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git Push --help' for details.

S'il vous plaît aider: C Idk quoi faire. Je ne peux ni pousser ni tirer. J'ai essayé à peu près tout ce à quoi je pouvais penser. J'ai également essayé: git merge --abort. Le truc c'est que quand je fais ça, je n'arrive pas à trouver mon conflit que je devrais résoudre.

22
Tigerotic

C'est un message de VIM que vous utilisez apparemment comme éditeur de texte dans git. Avez-vous essayé de lire et de suivre ces deux (1) (2) points? L'un d'eux sera probablement vrai, et vous permettra de résoudre ce problème.

Tout d'abord, vérifiez que MERGE_MSG fichier (pas MERGE_MSG.swp), et voyez s'il existe et ce qu'il contient. Il s'agit très probablement d'une corbeille ou d'un fichier temporaire qui peut être supprimé en toute sécurité. À en juger par le nom, il s'agit probablement du nom de fichier utilisé comme zone d'édition de texte temporaire pour les messages de validation de fusion.

Puis, puisque vous utilisez VIM, lorsque VIM démarre, il essaie de créer un fichier d'échange pour ses propres besoins internes. Le message d'erreur indique que c'est ~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp. Souvent, vous pouvez simplement supprimer ces fichiers d'échange, surtout s'ils sont anciens ou inattendus. Cependant, si récemment une session de fusion-validation-modification de message s'est arrêtée et si vous aviez beaucoup de texte créatif que vous ne voulez pas perdre - alors ne le supprimez pas et récupérez qui permutera à la place , comme décrit dans (2) dans le message d'erreur.

Cependant, puisque vous ne savez pas ce qui se passe et que vous n'avez rien dit au sujet de la perte du texte que vous avez écrit, et puisqu'il s'agit probablement juste d'un MERGE_MSG qui a été généré automatiquement de toute façon, je suppose que vous pouvez:

git merge --abort
rm ~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp

et essayez à nouveau ce que vous faisiez.

En outre, il est bon de vérifier l'indice mentionné dans (1) dans le message d'erreur. Vérifiez avec ps ou quoi que ce soit d'autre pour toutes les sessions ouvertes VIM qui pourraient être en train de modifier ce MERGE_MSG. Si vous en repérez, alors, accédez-y et terminez la modification, ou faites-les quitter (escape,: q !, enter) (vim nettoiera les swaps à la fermeture), ou terminez-les (tuez-les, mais vous devez ensuite supprimer les fichiers de swap manuellement).

30
quetzalcoatl