Você pode tentar smerge-mode
apenas abrir o arquivo em conflito e fazer M-xsmerge-mode
RET. Irá destacar todas as regiões em conflito. Ele também adiciona combinações de teclas para resolver facilmente os conflitos, consulte sua documentação C-hfsmerge-mode
RETpara conhecê-los.
Prefixo padrão
Eu acho o prefixo padrão para smerge-mode
C-c^complicado, então mudei para C-cv
(setq smerge-command-prefix "\C-cv")
Keybindings importantes
Para mim, as ligações mais importantes são:
smerge-next
obrigado a smerge-command-prefixnpassar para o próximo conflito.
smerge-previous
obrigado a smerge-command-prefixppassar para o conflito anterior.
smerge-keep-current
obrigado a smerge-command-prefixRETmanter a versão em que o cursor está.
smerge-keep-mine
obrigado a smerge-command-prefixmmanter suas alterações.
smerge-keep-other
obrigado a smerge-command-prefixomanter outras alterações.
smerge-ediff
obrigado a smerge-command-prefixEiniciar uma sessão ediff para mesclar os conflitos. É o mesmo que vc-resolve-conflicts
(obrigado @phils e @Malabarba por apontar isso).
Ativando o modo de junção automaticamente
ATUALIZAÇÃO: O seguinte é relevante apenas nas versões do Emacs anteriores 25.1
; o seguinte pode causar problemas em versões posteriores, consulte https://github.com/magit/magit/issues/3897
Além disso, você pode estar interessado em ativar automaticamente smerge-mode
ao visitar um arquivo / buffer com marcadores de conflito, pode usar algo como o seguinte para conseguir isso
(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)
Observe que estou usando buffer-list-update-hook
e não, find-file-hook
pois na maioria das vezes eu recebo conflitos em um buffer que já está aberto no emacs, caso em que find-file-hook
não ajuda em nada.
Verifique também outros métodos mencionados nesta resposta
e
arquivos mostrados como conflitantes. O Magit seria iniciadoediff
para fazer a mesclagem e solicitaria depois que você confirmasse suas alterações, para poder preparar o arquivo mesclado.