Se você usa o vim, mas não usa o fugitivo para resolver conflitos de mesclagem, eu recomendo fortemente assistir http://vimcasts.org/episodes/fugitive-vim-resolving-merge-conflicts-with-vimdiff/ antes de ler o resto deste.
Ao resolver conflitos de fusão usando fugitive.vim’s :Gdiff
, o vim mostra a versão do branch de destino, a versão do branch de fusão e a cópia de trabalho em um diff de 3 vias.
Isso mostra como as ramificações diferem umas das outras, mas é difícil ver quais mudanças foram feitas em cada ramificação, uma vez que divergiram umas das outras. Eu costumava olhar para o outro branch e tentar adivinhar como o arquivo havia mudado com base na minha memória, mas finalmente me cansei disso e encontrei uma maneira mais fácil.
Ao fazer uma diferença de 3 vias, fugitivo se refere ao ancestral comum dos dois ramos como :1
. Você pode passar isso para qualquer um dos comandos fugitivos que usam uma revisão fugitiva como argumento. Graças a esse recurso, adicionei o seguinte ao meu .vimrc:
nnoremap <leader>ga :tab sp | Gvedit :1 | windo diffthis<CR>
Quando estou em um diff de 3 vias e ,ga
clico, o vim abre uma nova aba e compara o arquivo na janela ativa com o ancestral comum. Quando termino de ler a diferença, eu simplesmente :tabclose
volto para onde estava.