Eu normalmente uso git na linha de comando.
Mas quando há um conflito de mesclagem, eu uso o Vim para resolvê-los (pessoalmente, eu faço isso com o plugin fugitivo). Nota: fugitivo é bom para muita manipulação de git no Vim. Meu recurso favorito é o diferencial de três vias de um conflito de mesclagem.
O git suporta isso no vimdiff via git mergetool. Instalei o fugitivo, mas você pode configurá-lo manualmente (Obrigado @ Jay Thompson).
Configuração manual:
git config --global merge.tool vimdiff
git mergetool <file with conflicts>
A saída é um pouco diferente da descrita abaixo (eu não a usei pessoalmente). Mas o princípio é o mesmo, mas você tem uma quarta janela na parte inferior contendo o resultado.
Configurar com Fugitive
vim-fugitive é um plugin para integração / empacotamento do git para o Vim; pode fazer muitas coisas, e resolver conflitos é uma delas.
<Install the Fugitive Plugin>
vim <file with conflicts>
:Gdiff
- Vista 2 (esquerda): o código que estava no seu ramo.
- Exibição 1 (meio): o código mesclado (com conflitos)
- Exibir 3 (à direita): o código que foi mesclado ao seu código.
Agora você pode puxar e obter texto das outras duas visualizações para a visão central (que conterá todas as correções manuais). Depois de resolver todos os conflitos manualmente, basta sair do vimdiff
Embora você possa usar :diffget <view number>
e :diffput <view number>
puxar e empurrar as coisas entre as visualizações. Pessoalmente, não acho isso muito útil. Todo o código já está na exibição do meio. Então, eu apenas gosto de editar essa exibição manualmente até que o conflito seja resolvido. Ser capaz de ver as duas versões do código em ambos os lados da janela do meu editor é extremamente útil.
Também uma demonstração muito boa de seu uso aqui