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?
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:
.swp
(si vous êtes sûr que l’autre session git a disparu).Clarification à partir des commentaires:
.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
).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
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.
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