Вы можете попробовать smerge-modeпросто открыть конфликтующий файл и сделать M-xsmerge-modeRET. Здесь будут освещены все конфликтующие регионы. Он также добавляет сочетания клавиш, чтобы легко разрешать конфликты, ознакомьтесь с документацией, C-hfsmerge-modeRETчтобы узнать их.
Префикс по умолчанию
Я нахожу префикс по умолчанию для smerge-mode C-c^громоздких, поэтому я изменил его на C-cv
(setq smerge-command-prefix "\C-cv")
Важные сочетания клавиш
Для меня самые важные привязки:
smerge-nextобязан smerge-command-prefixnперейти к следующему конфликту.
smerge-previousобязан smerge-command-prefixpперейти к предыдущему конфликту.
smerge-keep-currentобязан smerge-command-prefixRETсохранить версию, в которой находится курсор.
smerge-keep-mineобязан smerge-command-prefixmсохранить ваши изменения.
smerge-keep-otherобязан smerge-command-prefixoсохранить другие изменения.
smerge-ediffобязан smerge-command-prefixEначать сеанс ediff, чтобы объединить конфликты. Это так же, как vc-resolve-conflicts(спасибо @phils и @Malabarba за то, что указал на это).
Включение режима smerge автоматически
ОБНОВЛЕНИЕ: Следующее относится только к предыдущим версиям Emacs 25.1, следующее может вызвать проблемы в более поздних версиях, см. Https://github.com/magit/magit/issues/3897
Кроме того, вам может быть интересно автоматическое включение smerge-modeпри посещении файла / буфера с маркерами конфликта, вы можете использовать что-то вроде следующего для достижения этой цели
(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)
Обратите внимание, что я использую, buffer-list-update-hookи нет, find-file-hookтак как в большинстве случаев я получаю конфликты в буфере, который уже открыт в Emacs, и в этом случае find-file-hookэто не поможет.
Также проверьте другие методы, упомянутые в этом ответе
eна файлы, показанные как конфликтующие. Magit запуститediffпроцесс слияния и предложит вам подтвердить изменения, после чего вы сможете создать объединенный файл.