Możesz spróbować po smerge-mode
prostu otworzyć plik będący w konflikcie i zrobić M-xsmerge-mode
RET. Podświetli wszystkie konfliktowe regiony. Dodaje także skróty klawiszowe w celu łatwego rozwiązywania konfliktów, zapoznaj się z ich dokumentacją, C-hfsmerge-mode
RETaby je poznać.
Domyślny prefiks
Znajduję domyślny przedrostek dla smerge-mode
C-c^kłopotliwego, więc zmieniłem go na C-cv
(setq smerge-command-prefix "\C-cv")
Ważne skróty klawiszowe
Dla mnie najważniejsze wiązania to:
smerge-next
musi smerge-command-prefixnprzejść do następnego konfliktu.
smerge-previous
musi smerge-command-prefixpprzejść do poprzedniego konfliktu.
smerge-keep-current
zobowiązany do smerge-command-prefixRETzachowania wersji, na której znajduje się kursor.
smerge-keep-mine
zobowiązane do smerge-command-prefixmzachowania twoich zmian.
smerge-keep-other
zobowiązane do smerge-command-prefixozachowania innych zmian.
smerge-ediff
zobowiązany do smerge-command-prefixErozpoczęcia sesji ediff w celu scalenia konfliktów. To jest to samo co vc-resolve-conflicts
(dzięki @phils i @Malabarba za zwrócenie na to uwagi).
Automatyczne włączanie trybu smerge
AKTUALIZACJA: Poniższe informacje dotyczą tylko wcześniejszych wersji Emacsa 25.1
, poniższe mogą powodować problemy w późniejszych wersjach, patrz https://github.com/magit/magit/issues/3897
Dodatkowo możesz być zainteresowany automatycznym włączaniem smerge-mode
podczas odwiedzania pliku / bufora ze znacznikami konfliktu, możesz użyć czegoś takiego jak poniżej, aby to osiągnąć
(defun my-enable-smerge-maybe ()
(when (and buffer-file-name (vc-backend buffer-file-name))
(save-excursion
(goto-char (point-min))
(when (re-search-forward "^<<<<<<< " nil t)
(smerge-mode +1)))))
(add-hook 'buffer-list-update-hook #'my-enable-smerge-maybe)
Zauważ, że używam buffer-list-update-hook
i nie, find-file-hook
ponieważ przez większość czasu dostaję konflikty w buforze, który jest już otwarty w emacsie, w którym find-file-hook
to przypadku nie pomaga.
Sprawdź także inne metody wymienione w tej odpowiedzi
e
pliki pokazane jako konflikty. Magit uruchomi się,ediff
aby wykonać scalenie, a następnie poprosi cię o potwierdzenie zmian, a następnie możesz wprowadzić etap scalania pliku.