Normalmente uso git en la línea de comando.
Pero cuando hay un conflicto de fusión, uso Vim para resolverlos (personalmente lo hago con el complemento fugitivo). Nota: fugitivo es bueno para mucha manipulación de git desde Vim. Mi característica favorita es la diferencia de 3 vías de un conflicto de fusión.
git admite esto en vimdiff a través de git mergetool. He instalado fugitivo pero puedes configurarlo manualmente (Gracias @ Jay Thompson).
Configuración manual:
git config --global merge.tool vimdiff
git mergetool <file with conflicts>
El resultado es ligeramente diferente al que se describe a continuación (no lo he usado personalmente). Pero el principio es el mismo, pero tiene una cuarta ventana en la parte inferior que contiene el resultado.
Configurar con fugitivo
vim-fugitive es un complemento git wrapper / integración para Vim; puede hacer muchas cosas, y resolver conflictos es una de ellas.
<Install the Fugitive Plugin>
vim <file with conflicts>
:Gdiff
- Vista 2 (izquierda): el código que estaba en su sucursal.
- Vista 1 (centro): el código combinado (con conflictos)
- Vista 3 (derecha): el código que se fusionó con su código.
Ahora puede extraer y obtener texto de las otras dos vistas en la vista central (que contendrá todas las correcciones manuales). Una vez que haya resuelto todos los conflictos manualmente, simplemente salga de vimdiff
Aunque puede usar :diffget <view number>
y :diffput <view number>
para tirar y empujar cosas entre las vistas. Personalmente no me parece muy útil. Todo el código ya está en la vista central. Así que solo me gusta editar esa vista manualmente hasta que se resuelva el conflicto. Sin embargo, poder ver ambas versiones del código a ambos lados de la ventana de mi editor es extremadamente útil.
También una muy buena demostración de su uso aquí