2016-12-22 32 views
7

Kiedy ciągnąć:Jak rozwiązać git scalania błędzie "plik wymiany .MERGE_MSG.swp już istnieje"

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! 

Kiedy wciskam:

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. 

Proszę o pomoc: C Idk co robić. Nie mogę pchać ani ciągnąć. Próbowałem prawie wszystkiego, co mogłem wymyślić. Próbowałem też: git merge --abort. Rzecz w tym, że kiedy to robię, nie mogę znaleźć mojego konfliktu, który powinienem rozwiązać.

Odpowiedz

9

Jest to wiadomość od VIM, która najwyraźniej używasz jako edytora tekstu w git. Czy próbowałeś czytać i przestrzegać tych dwóch (1) (2) punktów? Jedna z nich będzie prawdopodobnie prawdą i pozwoli ci rozwiązać ten problem.

Przede wszystkim sprawdź, czy plik MERGE_MSG (nie MERGE_MSG.swp), i sprawdź, czy istnieje i co jest w środku. Najprawdopodobniej jest to kosz lub plik tymczasowy, który można bezpiecznie usunąć. Sądząc po nazwie, prawdopodobnie jest to nazwa pliku użyta jako tymczasowy obszar edycji tekstu dla wiadomości o zatwierdzeniu scalenia.

Następnie, gdy używasz VIM, po uruchomieniu VIM, próbuje utworzyć plik wymiany dla własnych potrzeb wewnętrznych. Komunikat o błędzie informuje, że jest to ~/Documents/Sites/recipegenerator/.git/.MERGE_MSG.swp. Często można po prostu usunąć takie pliki wymiany, zwłaszcza jeśli są stare lub nieoczekiwane. Jeśli jednak ostatnio zdarzyło się, że część sesji scalania-zatwierdzania-edycji uległa awarii i jeśli miałeś dużo tekstu kreatywnego, którego nie chcesz stracić, to nie usuwaj go, a odzyskaj zamiast tego zamień, jak opisano w (2) w komunikacie o błędzie.

Jednakże, ponieważ nie wiem, co się dzieje i nie masz nic o utracie jakiś tekst zapisany powiedział, a ponieważ jest to prawdopodobnie tylko MERGE_MSG który został wygenerowany anyways, przypuszczam można:

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

i spróbuj jeszcze raz tego, co robiłeś.

Warto również sprawdzić wskazówkę wymienioną w (1) w komunikacie o błędzie. Sprawdź z ps lub cokolwiek innego dla wszystkich otwartych sesji VIM, które mogą obecnie edytować, MERGE_MSG. Jeśli zauważysz jakieś, wtedy, dobrze, dojdź do nich i albo zakończ edycję, albo spraw, aby je zamknąć (escape,: q !, enter) (vim wyczyści swapy przy rzucaniu palenia) lub je zakończy (zabij je, ale wtedy potrzebujesz aby ręcznie usunąć pliki wymiany).